当前位置: 首页 > 编程语言 > C#

C#ObservableCollectionOnCollectionChangedDoesNotTriggerWhenItemsChange分享

时间:2023-04-10 14:05:33 C#

C#ObservableCollectionOnCollectionChangedDoesNotTriggerWhenItemsChangeOnC#“我正在更改附加到我的集合的obj的属性,但OnCollectionChanged没有触发。我正在obj类上实现iNotifyPropertyChanged。公共类ObservableBatchCollection:ObservableCollection{protectedoverridevoidOnCollectionChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgse){if(e.Action==System.Collections.Specialized.NotifyCollectionChangedAction.Add){foreach(e.New中的BatchData项目}Items){}base.OnCollectionChanged(e);}publicObservableBatchCollection(IEnumerableitems):base(items){}}对我来说,这意味着当集合中的项目发生变化时(如对象的属性),事件应该触发。然而,事实并非如此。我希望能够知道我的自定义集合中的项目何时更改,以便我可以根据需要进行计算。有任何想法吗?ObservableCollection仅在集合本身发生变化时引发事件。该集合包含其内部状态已发生变化但未更改集合结构的项目,ObservableCollection不会报告它。一种选择是子类化ObservableCollection并在添加时订阅每个项目的OnPropertyChanged事件。在该处理程序中,您可以引发自定义事件,或回退到集合自己的PropertyChanged事件。请注意,如果您走这条路,您应该添加一个通用约束,以便T:INotifyPropertyChanged。以上为C#学习教程:C#ObservableCollectionOnCollectionChanged项目变更时不触发分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢