使用MVVM将IList绑定到列表控件

时间:2010-01-13 18:12:02

标签: wpf data-binding mvvm ilist

我正在尝试理解MVVM模式,我参加了一个示例程序。该模型是一个C#.net库,查询时返回一个IList<INote>对象。我希望我的视图能够通过数据绑定添加/编辑/删除此集合中的项目。但我不知道如何开始使用MVVM。请帮帮我。

模型公开了一个接口来检索IList<INote>目标, View有一个列表框,显示IList<INote>的内容以及其他一些控件,以便将数据添加到IList<INote>

3 个答案:

答案 0 :(得分:3)

将您的ListBox绑定到ObservableCollection<T>,每次添加或删除ObservableCollection<T>中的内容时,它都会立即更新。

ObservableCollection<T>通常应该是ViewModel的属性。

如果模型中的IList属性不可观察(并且您无法控制它),则必须编写代码以在ViewModel中同步它。这些是建筑问题。我认为在这方面最干净的选择是实际使用ReadOnlyObservableCollection<T>并使用您的存储库添加/删除项目并相应地进行同步。

答案 1 :(得分:1)

DelegateCommand {{1}}应该为您提供良好的基础。

答案 2 :(得分:0)

我的列表框绑定到ObservableCollection<Item>,我在此集合中添加/删除/修改了项目。它工作正常。在how it works without any INotifyPropertyChanged上查看此信息。如果我错了,请纠正我