代码之家  ›  专栏  ›  技术社区  ›  sudarsanyes

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

  •  1
  • sudarsanyes  · 技术社区  · 15 年前

    我正试图理解MVVM模式,并取了一个示例程序进行工作。该模型是一个C.NET库,当被查询时,它返回一个 IList<INote> 对象。我希望视图能够通过数据绑定添加/编辑/删除此集合中的项。但我不知道如何从这个开始,使用MVVM。请帮帮我。

    模型公开接口以检索 我是lt;Inote> 对象, 视图有一个列表框,其中显示 我是lt;Inote> 以及将数据添加到 我是lt;Inote> .

    3 回复  |  直到 13 年前
        1
  •  3
  •   herzmeister    15 年前

    将列表框绑定到 ObservableCollection<T> 每次添加或删除内容时都会立即更新 观察收集<t> .

    这个 观察收集<t> 通常应为ViewModel的属性。

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

        2
  •  1
  •   Tim Cooper    13 年前

    我的 blog post DelegateCommand 应该给你一个良好的基础。

        3
  •  0
  •   sudarsanyes    15 年前

    绑定 我的列表框 ObservableCollection<Item> 我在这个集合中添加/删除/修改了项。它很好用。看看这个 how it works without any INotifyPropertyChanged . 如果我错了请纠正我