【发布时间】:2015-10-16 21:33:02
【问题描述】:
我从事一个在 MVVM 架构中构建的 WPF 项目。
我的 ViewModel 类包含 SentenceVM 类的 ObservableCollection,这也是一个 ViewModel 类(实现 INotifyPropertyChanged)。
这个ObservableCollection 绑定到一个DataGrid,我想允许通过DataGrid 内置函数将新记录添加到集合中。
ObservableCollection<SentenceVM> observe = new ObservableCollection<SentenceVM>()
问题是CollectionChanged 事件在添加行过程开始时触发。因此,我不知道何时参考数据库提交新数据。
我需要在用户完成添加新数据时触发此事件,而不是在开始时触发。
我知道这可以通过生成一个在 END 插入或 Enter 键上执行的命令来完成,但我正在寻找一种实用的方法来使用这个ObservableCollection。
谢谢!
【问题讨论】:
-
每当有新项目添加到集合中(或删除)时,collectionchanged 事件就会触发,这就是您在开始时收到该事件的原因。什么决定了用户何时完成添加数据?
-
是的,我知道,但我正在寻找一种方法来在用户完成添加数据时获得通知(在 VM 类中)。
-
对,但用户可以随时添加数据。您将使用什么类型的机制来确定用户已完成?例如,如果 5 秒后没有添加数据,您将需要类似“计时器”的东西,它会触发“添加完成”事件。
-
是的,你是对的,谢谢!
标签: c# wpf silverlight mvvm datagrid