我正在使用MVVM开发一个wpf应用程序。
现在,我有我的模型实体,每个视图一个视图模型,当然还有视图。
有我的实体的例子:
public class Group : INotifyPropertyChanged
{
public string GID { get; set; }
public string Label { get; set; }
public DateTime Date { get; set; }
public int Rank { get; set; }
}
public class Person : INotifyPropertyChanged
{
public string Name { get; set; }
public Group Group { get; set; }
}
(我删除了通知以简化)
目前,我将模型实体映射到viewmodel,通过一个重复模型属性并添加其他属性的中间类。总结:model< - >组件< - >视图模型。但这为我增加了无用的复杂性。
此外,我还有一个特殊情况,我想在数据网格中显示人员列表。
如您所见,“组”列是按开始日期和结束日期过滤的下拉列表,“级别”列根据上一个下拉列表中的选定组进行过滤。
所以,我的问题是:你如何通过viewmodel包装你的模型?特别是这种情况。
答案 0 :(得分:1)
最后,我找到了一个简单的解决方案,基于this article我的同事与我分享。
public class PersonViewModel(){
public Person Person { get; set; }
}
public class MainViewModel(){
public Club Club { get; set; }
public ObservableCollection<PersonViewModel> PersonViewModels { get; set;}
public PersonViewModel CurrentPersonViewModel { get; set; }
}
这可能并不完美,但这可以避免我的解决方案过于复杂。