3

我想写一个小程序来管理文章。pgm 应该在数据网格中显示文章列表。

可以是必须在网格中显示的 500/1000 篇文章。我应该像 josh smith 在他的示例http://msdn.microsoft.com/en-us/magazine/dd419663.aspx中那样在数据网格行中使用视图模型吗?

我在 joshs 示例中进行了一些测试。所以我把他的customers.xml 文件扩展为800 个客户。-> 应用程序需要一点(更多)时间来启动和关闭它(如果显示单击“显示所有客户”按钮)将需要几秒钟。那么使用视图模型的系统应该是一个沉重的负担吗?有人可以向我解释使用视图模型作为数据网格行而不是文章的优势吗?

什么是更好的方法?

public ObservableCollection<ArticleViewModel> AllArticle { get; private set; }

或者

public ObservableCollection<Article> AllArticleraw { get; private set; }
4

1 回答 1

3

是否将 ViewModels 用作 DataGrid 行实际上取决于每行必须具有多少功能。

如果网格是只读的,仅用于显示目的,并且底层数据不会改变,那么 ViewModels 可能对于一行来说是多余的。

但是,如果您的用户可能与该行交互,可能会编辑一行中的值,或者如果该行中的值可能由于外部操作而发生变化,并且您希望这些更改自动反映在网格中,那么您应该考虑视图模型。

请记住,ViewModel 只是为某个目的服务的对象的名称 - 它可以根据您的需要而重或轻。例如,如果您希望您的行立即反映网格中的更改,它可以是一个简单的 POCO,它具有每个行列的属性,然后实现INotifyPropertyChanged在其中一个属性值发生更改时通知网格。

不要让 ViewModel 的重量级实现吓跑你远离 MVVM 的概念——只在每个 ViewModel 中实现你需要的特性。

于 2013-02-25T18:43:25.810 回答