Wpf 通知ViewModel来自模型类的属性更改

Wpf 通知ViewModel来自模型类的属性更改,wpf,xaml,treeview,wpf-controls,Wpf,Xaml,Treeview,Wpf Controls,在我的WPF应用程序中,我将TreeView IsSelected属性绑定到模型类中的属性。因此,所选项目在模型类中设置。每当设置/更改所选项目时,我需要通知我的ViewModel。我该怎么做 提前谢谢。我想您的模型实例是ViewModel的一部分。。。首先,是的,它应该实现INotifyPropertyChanged。如果还希望ViewModel收到通知,则ViewModel应订阅该事件 public class Model : INotifyPropertyChanged { priv

在我的WPF应用程序中,我将TreeView IsSelected属性绑定到模型类中的属性。因此,所选项目在模型类中设置。每当设置/更改所选项目时,我需要通知我的ViewModel。我该怎么做


提前谢谢。

我想您的模型实例是ViewModel的一部分。。。首先,是的,它应该实现INotifyPropertyChanged。如果还希望ViewModel收到通知,则ViewModel应订阅该事件

public class Model : INotifyPropertyChanged
{
   private string _name;
   public string Name {
      get {return _name;}
      set {
         _name = value;
         NotifyPropertyChanged("Name");
   }
// etc... including INPC implementation
}

public class ViewModel : INotifyPropertyChanged {
   public ViewModel (Model model){
      this.MyModel = model;
      this.MyModel.PropertyChanged += (s,e) => { DoSomething();};
   }

   public Model MyModel { get; set; }
}

检查的“更新”部分。如果模型属性符合INPC,则非常好。如果它没有实现INPC,将视图的
SelectedItem
属性绑定到VM而不是模型,并在属性设置器中从VM更新模型。如果要向viewmodel通知属性更改,则需要绑定到viewmodel中的属性,或者只需创建另一个属性并将模型属性分配给该属性viewModel属性,以便每次选择viewModel属性时都会引发更改。我无法绑定到viewModel中存在的属性。my Model和ViewModel都实现INotifyPropertyChange类。我能用它吗
OnPropertyChange(“PropertyName”)
PropertyName在ViewModel中,但我的模型没有引发该属性,可能是因为它找不到该属性。有什么想法吗?@WQad你检查了
属性观察者
一级链接了吗?既然您提到您的模型实现了INPC,那么这是我所能想到的最干净的方法,因为VM和模型之间的依赖性很弱。