我最近开始使用WPF开发一个应用程序,而且我真的无法理解以下事情:
我的应用程序的域模型是与硬盘序列化的简单POCO对象。然后我有WPF应用程序,我想将它绑定到模型的各个部分。我需要能够通知UI底层模型的更改(例如,实现INotifyPropertyChanged)但我想这样做而不干涉我的模型(读取而不修改模型的当前实现)。除了修改模型之外,如何实施更改通知? 我想这样做的原因是我在多个项目中共享模型,只有一个是WPF,我不想在模型中添加不必要的代码。 我想到的一件事是创建模型的“副本”(使用INotifyPropertyChanges和BindingLists等),但这似乎很难维护...... 提前谢谢。
的Ondrej
答案 0 :(得分:2)
查看MVVM
下载其源代码,请参阅层次结构。
基本上,您仍然将简单的POCO对象保留为模型。然后围绕模型创建一个ViewModel,如下所示:
public class CustomerViewModel : INotifyPropertyChanged
{
readonly Customer _customer;
public CustomerViewModel(Customer customer)
{
_customer = customer;
}
public string FirstName
{
get { return _customer.FirstName; }
set
{
if (value == _customer.FirstName)
return;
_customer.FirstName = value;
OnPropertyChanged("FirstName");
}
}
...
}
答案 1 :(得分:0)
我在这里看到两种可能的解决方案: