Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6839765
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T23:45:32+00:00 2026-05-26T23:45:32+00:00

If my model implements INotifyPropertyChanged and does my VM need to? Clarification: In the

  • 0

If my model implements INotifyPropertyChanged and does my VM need to?

Clarification: In the real case where you have SomeOtherProp then INotifyPropertyChanged absolutely needs to be implemented. What I am really after is how much work I have to do (replicate) for well formed models.

Example:

namespace Question
{
    public interface IFoo : INotifyPropertyChanged { }
    public interface IBar : INotifyPropertyChanged { }

    public interface IModel : INotifyPropertyChanged
    {
        IFoo Foo { get; set; }
        ObservableCollection<IBar> BarCollection { get; }
    }

    public class VM : TypeSafeViewModelBase
    //Clarification: added VM base clase with typesafe override for RaisePropertyChanged
    {
        private IModel _model;
        public VM( IModel model )
        {
            this._model = model;
            //Clarification: added this call...
            this._model.PropertyChanged += ( sender, args ) => base.RaisePropertyChanged(args.PropertyName);
            //That is the one I have questions about and ultimateley what I  want to avoid
        }

        public IFoo Foo { get { return this._model.Foo; } }
        public ObservableCollection<IBar> BarCollection { get { return this._model.BarCollection; } }

        //clarification: added this prop declaration
        //I know this would be needed as this property is backed by a private member of this class
        private string _someOtherProp;
        public string SomeOtherProp
        {
            get { return this._someOtherProp; }
            set
            {
                this._someOtherProp = value;
                base.RaisePropertyChanged(() => this.SomeOtherProp);
            }
        }
    }
}

Does VM need to implement INotifyPropertyChanged? And relay all the events to the V? Or do things in the V bind to lowest level objects which implement the PropertyChanged and CollectionChanged interfaces?

I can’t seem to find a definitive answer for how much glue code I need to write if I have a well formed, notifying model layer…

PS. I am developing in SL4 using Prism and Ninject if that matters. My model is mutable, stateful, and in local memory (I keep a local cache because hitting the server after every operation is not practical).

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T23:45:33+00:00Added an answer on May 26, 2026 at 11:45 pm

    No, you don’t need to implement interface itself in your case. For example, VM doesn’t need to implement INotifyPropertyChange if you use RIA services business object since those already do implement it.

    However! Most likely you still want to do that because properties like “IsBusy”, “CanSave” and so on usually belong to VM itself and then you need interface.

    Usually every application have some type of VMBase object that implements INotifyPropertyChanged, INotifyDataErrorInfo and so on. And every VM inherits from this base class

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

My Model implements INotifyPropertyChanged , and I have a WPF window bound to it
I have a DataTable that I'm converting to a model which implements INotifyPropertyChanged. This
I have a domain model Viper. BindableObject implements all the INotifyPropertyChanged interface. Simplified models:
I have a model-driven Struts Web action: public class ModelDrivenAction<T extends Object> implements ModelDriven<T>,
I have a column class which uses view model base to implement INotifyPropertyChanged (lazy
Most MVVM examples I have worked through have had the Model implement INotifyPropertyChanged ,
My view model implements INotifyPropertyChanged for properties that it makes available to my view.
I have a view model that implements IValidatableObject and also has several validation attributes.
How does one implement a multithreaded single process model in linux fedora under c
Working with the MVVM pattern, I have a pair of view model classes that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.