I have core functionality encapsulated in ViewModelBase
Now I want to see when PropertyChanged event was raised by ViewModelBase and act on it. For example, when one property was changed on ViewModelBase – I want to change property on my ViewModel
How do I achieve this?
public class MaintainGroupViewModel : BaseViewModel<MEMGroup>
{
public abstract class BaseViewModel<T> : NotificationObject, INavigationAware
where T : Entity
{
I am concerned that you’re effectively doing a ‘manual binding’ (bad) for a property in a derived class to a value on the base class (also bad). The whole point of using inheritance is that the derived class can access things in the base class. Use a
protectedmodifier to indicate things should only be accessible to derived classes.I would suggest this (potentially) more correct method:
Base class:
Derived class:
Really, subscribing to an event in the base class of the very class you’re writing just seems incredibly backwards – what’s the point of using inheritance over composition if you’re going to compose yourself around yourself? You’re literally asking an object to tell itself when something happens. A method call is what you should use for that.
In terms of “when one property was changed on ViewModelBase – I want to change property on my ViewModel”, … they are the same object!