【发布时间】:2013-07-10 14:26:38
【问题描述】:
在我的 WPF 应用程序中,我将 TreeView IsSelected 属性绑定到我的模型类中的一个属性。所以选择的项目是在模型类中设置的。每当设置/更改所选项目时,我都需要通知我的 ViewModel。我该怎么做?
提前致谢。
【问题讨论】:
-
检查this 的“更新”部分。如果 Model 属性符合 INPC,Josh Smith's PropertyObserver 非常好。如果它没有实现 INPC,请将 View 的
SelectedItem属性绑定到 VM 而不是模型,并在属性设置器中从 VM 更新模型。 -
如果您想通知 viewmodel 您的属性更改,您需要绑定到 viewmodel 中存在的属性,或者您可以简单地创建另一个属性并将您的模型属性分配给该 viewModel 属性,以便每次选择您的视图模型属性更改将引发..
-
我无法绑定到 ViewModel 中的属性。我的模型和视图模型都实现了 INotifyPropertyChange 类。我可以以某种方式使用它吗?
OnPropertyChange("PropertyName")PropertyName 在 ViewModel 中,但我的模型没有引发该属性可能是因为它无法找到该属性。有什么想法吗? -
@WQad 你检查了我链接的
PropertyObserver类吗?既然你提到你的模型实现了 INPC,那是我能想到的最干净的方法,因为虚拟机和模型之间存在弱依赖关系。
标签: wpf xaml treeview wpf-controls