我想写一个小程序来管理文章。 pgm应显示数据网格中的文章列表。
可以是必须在网格中显示的500/1000篇文章。 我应该在数据网格行中使用viewmodel,例如josh smith在他的示例中http://msdn.microsoft.com/en-us/magazine/dd419663.aspx吗?
我在joshs的例子中测试了一下。 所以我把他的customers.xml文件扩展到800个客户。 - >应用程序花了一点(更多)时间来启动和关闭它(如果显示单击“显示所有客户”按钮)将花费几秒钟。那么对于使用视图模型的系统来说应该是一个沉重的负载? 有人可以解释我使用viewmodels作为数据网格行而不是文章的优势吗?
更好的方法是什么?
public ObservableCollection<ArticleViewModel> AllArticle { get; private set; }
或
public ObservableCollection<Article> AllArticleraw { get; private set; }
答案 0 :(得分:2)
是否将ViewModels用作DataGrid行实际上取决于每行必须具有的功能。
如果网格是只读的,仅用于显示目的,而基础数据不会改变,那么ViewModels可能会过度杀伤。
但是,如果您的用户可能与该行进行交互,可能会编辑一行中的值,或者如果行中的值可能因外部操作而发生更改,并且您希望这些更改自动反映在网格中,则你应该考虑ViewModels。
请记住,ViewModel只是一个用于某个目的的对象的名称 - 它可以像您需要的那样重或轻。例如,如果您希望您的行立即反映网格中的更改,则它可以是具有每个行列的属性的简单POCO,然后实现INotifyPropertyChanged
以在其中一个属性值发生更改时通知网格
不要让ViewModel的重量级实现让您远离MVVM的概念 - 只实现每个ViewModel中所需的功能。