HowtoDetectifanIteminMyObservableCollectionhasChanged我绑定了一个ObservableCollection。这会在更新网格时自动更新集合中的Product对象。我现在要做的是在更新集合中的任何对象时触发某种偶数触发器-或者-某种类型的集合绑定,如果任何产品已更新,它将返回true/falsedepedant。总体目标是在我的主窗口上有一个保存按钮,如果没有对我的收藏进行任何更改,则该按钮将被禁用,如果已进行更改,则将其启用。我读过有关INotifyPropertyChange的信息,但我不知道如何使用它来监视整个集合的更改。另外,如果我在我的Product类上实现这个接口,我将看不到我的UI如何监控集合中的每个Product——或者可以吗?只需使用ObservableCollection。它有一个名为CollectionChanged的??事件。如果你注册它,你可以做你想做的事。示例:ObservableCollectionstrings=newObservableCollection();strings.CollectionChanged+=newSystem.Collections.Specialized.NotifyCollectionChangedEventHandler(已更改);strings.Add("你好");strings[0]="你好你好";and:privatevoidchanged(objectsender,System.Collections.Specialized.NotifyCollectionChangedEventArgsargs){//你在这里得到两次通知。逻辑需要进入您的模型(产品类)。一种干净的方法是在模型中公开IsDirty属性(由字段支持)。您的ViewModel将使用CanSave的命令绑定检查内部集合,如果集合中的任何项目具有IsDirty=true,则返回IsDirty=true。我认为为集合中的每个对象订阅PropertyChanged事件并触发此事件,例如,在对象的setter中会起作用。但是,我认为您不需要执行所有这些操作来确定网格中的单元格是否已更改。我想你可以做一些类似于他们在这里做的事情:http://social.msdn.microsoft.com/Forums/en/wpf/thread/81131225-90fb-40f9-a311-066952c7bc43以上是C#学习教程:如何检测我的ObservableCollection中的项目是否已更改?如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
