我不确定这个问题是否属于这里,请告诉我如果不是,但我正在苦苦挣扎于WPF和MVVM。
现在我有一个名为Customer的类,其中包含大约20个属性:
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
...
}
根据 MVVM 模式,我需要在我的 ViewModel 中复制所有这些属性,例如(为了避免问题过长,我只添加了 name 属性。但是请考虑如果我要将 Model 的所有 20 个属性添加到我的 ViewModel 中,像以下这样):
public class CustomerViewModel : ViewModelBase
{
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged();
}
}
...
}
你可以看到,仅仅是这个例子,我就会写出数百行代码。如果我需要将视图的数据保存到数据库中,我会这样做:
private void SaveCustomer()
{
Customer customer = new Customer();
customer.Id = Id;
customer.Name = Name;
customer.Address = Address;
...
}
又是一堆代码。如果我需要加载一个客户,我需要做同样的操作,只不过是反过来。如果我需要清空所有属性,我需要将每个属性设置为null。
在我的项目中,我就是这样做的,我不知道这是否是正确的方法,如果有其他方法,请告诉我。但是这会创建大量代码,而且我无法看出如此多的代码是可维护的,因为很容易迷失在代码之中。如果有其他方法或者我的想法是错误的,请告诉我。