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