private void thisDataContextChanged(object sender, DependencyPropertyChangedEventArgs e) { SourceInfoViewModel oldVM = e.OldValue as SourceInfoViewModel; SourceInfoViewModel newVM = e.NewValue as SourceInfoViewModel; if (oldVM != null) { oldVM.PropertyChanged -= Model_PropertyChanged; } if (newVM != null) { newVM.PropertyChanged += Model_PropertyChanged; } }
public SourceManagerViewModel() { _srcPersis = NinjectResolver.Instance.Get <ISourcePersistence>(); SourceInfoModel = new SourceInfoViewModel(_srcPersis); SourceInfoModel.SourceCreated += SIM_SourceCreated; SourceInfoModel.SourceUpdated += SIM_SourceUpdated; CloseCmd = new CommandDelegate(_ => doCloseCmd()); CreateNewCmd = new CommandDelegate(_ => doCreateNewCmd()); DeleteCmd = new CommandDelegate(_ => doDeleteCmd()); ConnectCmd = new CommandDelegate(_ => doConnectCmd()); SourceItems = new CollectionViewSource(); this.PropertyChanged += thisPropertyChanged; reloadSource(); }