鉴于我的数据访问层中存在多对多关系(使用 CodeFirst - EF),例如
public class Report{
public int ReportId {get;set;}
public string ReportName {get;set;}
public List<ReportKeyword> ReportKeywords {get;set;}
}
public class ReportKeyword{
public int ReportId {get;set;}
public int KeywordId {get;set;}
}
public class Keyword{
public int KeywordId {get;set;}
public string KeywordName {get;set;}
public List<ReportKeyword> ReportKeywords {get;set;}
}
我需要创建一个显示报告列表视图的用户界面(WPF 视图),并且每个报告都应显示其关键字的子列表视图。因此,这可以在 ViewModel 中轻松完成,但为此目的对 ViewModel 进行建模的最佳方式是什么。我是否需要创建具有必要属性的 VM?这是一个 ReportViewModel,它具有我想要在报表对象之外显示的所有类似属性,包括一组关键字。
public class ReportViewModel : ViewModelBase<ReportViewModel>
{
private string _reportName;
public string ReportName
{
get { return _reportName; }
set
{
_reportName = value;
NotifyPropertyChanged(model => model.ReportName);
}
}
private ObservableCollection<Keyword> _keywords;
public ObservableCollection<Keyword> Keywords
{
get { return _keywords; }
set
{
_keywords = value;
NotifyPropertyChanged(model => model.Keywords);
}
}
}
我觉得有点乏味。如何填充集合以显示在网格上?是否应该在选择报表时调用设置关键字集合的方法?这种情况有更好的解决方案吗?