【发布时间】:2009-09-17 21:58:24
【问题描述】:
我正在开发一个使用 DataGrid 的基于 MVVM 的 WPF 应用程序。网格数据绑定到ObservableCollection<Widget>(Widget 列表)。用户需要能够将Widget 插入到当前选定的Widget 下方的列表中,以删除选定的Widget,并在网格上重新排列Widgets。我将通过拖放实现重新排序。
在深入研究之前,我想对我的方法进行实际检查。这是我打算做的:Widget 类将有一个Index 属性,用于订购Widget 列表。添加、删除和重新排序将通过操作此 Index 属性完成,排序将在 Widget 列表上完成,而不是通过 CollectionView。
在设置DataContext 之前,Widget 列表将按Index 属性排序。当用户添加Widget 时,Index 属性将在网格上所选项目下方的每个Widget 递增 1,并且新的Widget 将被赋予通过重新编号打开的索引号。 Widget 列表将重新启用,并且绑定将被刷新。
当用户删除 Widget 时,Widget 将从列表中删除,并且被删除项目下方网格中项目的 Index 属性将减 1。Widget 列表将被诉诸,并且绑定刷新,如上所述。重新排序将作为删除和插入的组合完成。
这是我的问题:这是实现插入、删除和重新排序的合理策略吗?有没有更好的方法来解决它?关于这个主题的任何好的文章或博客文章?我已经看过了,但我没有提出任何正确的建议。
感谢您的帮助。
【问题讨论】:
标签: wpf mvvm datagrid wpfdatagrid