草庐IT

ObservableCollection

全部标签

c# - WPF ObservableCollection 两种方式绑定(bind) XML 文件

我想将一个ObservableCollection绑定(bind)到一个XML文件。在的多次回复之前YoushouldbindyourDataGrid,ComboBox,etc..directlytotheXMLfile请注意ObservableCollection已经存在并且已经绑定(bind)到DataGrid、ComboBox等...重写所有代码对我来说听起来一点也不有趣。尽管我所做的关于将XML文件绑定(bind)到ObservableCollection的每个搜索都会直接返回XML文件的绑定(bind)对象。是的,我知道我可以自己手动添加、更新和删除,但我希望不必这样做。

c# - 为什么我的 ObservableCollection 序列化不起作用?

我正在尝试序列化和反序列化这个ObservableCollection:publicclassDataCollection:ObservableCollection{}publicclassData:INotifyPropertyChanged{publiceventPropertyChangedEventHandlerPropertyChanged;privatebool?_enabled;publicstringName{get;set;}publicbool?Enabled{get{return_enabled;}set{_enabled=value;NotifyProperty

c# - 添加项目到集合的更新 UI 已更改

我正在使用ObservableCollection,稍后应该用来自COM端口的数据填充,这意味着它会更新很多。出于测试目的,我设置了设计时样本数据(工作正常)和运行时样本数据,但是在将项目添加到我的集合时我无法更新我的UI。我已经在我的类中成功实现了INotifyPropertyChanged,如下所示:publicclassSensorViewModel:INotifyPropertyChanged{publicSensorViewModel(){dataItems=newObservableCollection();dataItems.CollectionChanged+=data

c# - 如何在 Windows Store App 中保存 ObservableCollection?

我正在基于拆分应用程序模板创建Windows应用商店应用程序。从SampleDataSource保存数据以备后用的最佳方法是什么?我试过:Windows.Storage.ApplicationDataContainerroamingSettings=Windows.Storage.ApplicationData.Current.RoamingSettings;roamingSettings.Values["Data"]=AllGroups;它抛出异常:“不支持这种类型的数据”。 最佳答案 RoamingSettings只支持runt

c# - 支持定期通知的自定义 ObservableCollection<T> 或 BindingList<T>

总结我有一个快速变化的大型数据集,我希望将其绑定(bind)到UI(带分组的数据网格)。变化有两个层面;经常从集合中添加或删除项目(单次每秒500个)每个项目都有4个属性,在其生命周期内最多会更改5次数据的特点如下;馆藏中约有5000件元素可以在一秒钟内添加一个项目,然后进行5次属性更改,然后再将其删除。项目也可能会保持某种临时状态一段时间,并且应该向用户显示。我遇到问题的关键要求;用户应该能够根据对象的任何属性对数据集进行排序我想做什么;仅每N秒更新一次UI仅引发相关的NotifyPropertyChangedEventsIfitem1hasapropertyStatewhichmo

c# - 取消订阅 observableCollection 中的事件

假设我有一个observableCollection类:CustomClassNametestClass=newCustomClassName();ObservableCollectioncollection=newObservableCollection();testClass.SomeEvent+=OnSomeEvent;collection.add(testClass);当我要从集合中删除项目时,我需要手动取消订阅事件(OnSomeEvent)还是应该留给GC?退订的最佳方式是什么? 最佳答案 如果您希望收集您的元素,那么是的

c# - 可观察集合 : calling OnCollectionChanged with multiple new items

请注意,我正在尝试使用NotifyCollectionChangedAction.Add操作而不是.Reset。后者确实有效,但对于大型收藏来说效率不高。所以我将ObservableCollection子类化:publicclassSuspendableObservableCollection:ObservableCollection出于某种原因,这段代码:privateList_cachedItems;...publicvoidFlushCache(){if(_cachedItems.Count>0){foreach(varitemin_cachedItems)Items.Add(i

c# - 在 MVVM 中使用后台 worker 更新 ObservableCollection

好的,我最近实现了一个后台工作程序来执行数据的保存和加载。然而,事实证明,要让它在保存命令上运行很困难。基本上,我的保存命令会生成一个事件,通知CollectionView模型已添加一个项目,并且该项目应该添加到它自己的ObservableCollection中。在这一点上,我得到了一个常见的异常,说我不能在不同的线程上更新ICollection。我已经尝试创建一个调用Dispatcher.Invoke的新列表类型,但这仍然会生成相同的异常。我想知道是否还有其他人对如何最好地解决这个问题有任何建议?所以目前我有一个继承自ObservableCollection的类:publicclas

c# - 为什么 .NET ObservableCollection<T> 实现为类而不是接口(interface)?

在阅读观察者设计模式时,我注意到它是使用接口(interface)实现的。在Java中,java.util.observable实现也是一个类。C#和Java版本不应该使用接口(interface)吗?斯科特 最佳答案 好吧,它实现了INotifyCollectionChanged和INotifyPropertyChanged.然而,有趣的是,它没有实现新的IObservable来自.NET4.0的界面,您可能已经预料到了。有一个通用形式的INotifyCollectionChanged可以说是有用的...但我不知道有一个。

c# - WPF ObservableCollection<T> 与 BindingList<T>

在我的WPF应用程序中,我有一个XamDataGrid。网格绑定(bind)到ObservableCollection。我需要允许用户通过网格插入新行,但事实证明,为了使“添加新行”行可用,xamDataGrid的源需要实现IBindingList。ObservableCollection不实现该接口(interface)。如果我将源更改为BindingList,它就可以正常工作。但是,据我阅读本主题的了解,BindingList实际上是一个WinForms的东西,在WPF中没有得到完全支持。如果我将所有ObservableCollections更改为BindingLists会不会出错