jjzjj

observableCollection

全部标签

c# - 订购一个 ObservableCollection<T> 而不创建一个新的

这个问题在这里已经有了答案:SortObservableCollectionthroughC#(14个答案)关闭5年前。我有以下代码来重新订购ObservableCollection收藏:list=newObservableCollection(list.OrderBy(c=>c.Ordinal));此代码有效,但我不喜欢涉及"new"这一事实。有没有办法可以更改ObservableCollection的内部元素顺序?收藏而不创建新的?谢谢,

c# - ObservableCollection<T>.Move(int,int) 是如何工作的?

我似乎无法通过阅读documentationforObservableCollection.Move(intoldIndex,intnewIndex)onMSDN来解决这个问题:oldIndexType:System.Int32Thezero-basedindexspecifyingthelocationoftheitemtobemoved.newIndexType:System.Int32Thezero-basedindexspecifyingthenewlocationoftheitem.我不明白它是如何工作的。带有newIndex的项目会怎样?我的假设是每个具有index>=ne

c# - 将 IList 中的元素添加到 ObservableCollection

我有一个ObservableCollection,我想将IList的内容设置为这个。现在我可以创建一个新的集合实例..:publicObservableCollectionobs=newObservableCollection();publicvoidFoo(IListlist){obs=newObservableCollection(list);}但是我怎样才能实际获取IList的内容并将其添加到我现有的ObservableCollection中呢?我必须遍历所有元素,还是有更好的方法?publicvoidFoo(IListlist){foreach(varelminlist)obs

c# - 如何在 ObservableCollection 上引发 CollectionChanged 事件,并将更改的项目传递给它?

我有一个继承自ObservableCollection的类,并添加了一些额外的方法,例如AddRange和RemoveRange我的基本方法调用是这样的:publicvoidAddRange(IEnumerablecollection){foreach(variincollection)Items.Add(i);OnCollectionChanged(newNotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));}我的问题是我想在CollectionChanged事件中访问e.NewItems或e.O

c# - 如何制作只读的 ObservableCollection 属性?

我想在包含对象列表(来自数据库)的View模型上公开一个属性。我需要这个集合是只读的。也就是说,我想阻止添加/删除等。但允许foreach和索引器工作。我的意图是声明一个包含可编辑集合的私有(private)字段,并使用只读公共(public)属性引用它。如下publicObservableCollectionCollectionOfFoo{get{return_CollectionOfFoo;}}但是,该语法只是防止更改对集合的引用。它不会阻止添加/删除等。实现此目标的正确方法是什么? 最佳答案 [先前]接受的答案实际上会在每次访

c# - 当 Item 改变时通知 ObservableCollection

我在这个链接上找到了ObservableCollectionnotnoticingwhenIteminitchanges(evenwithINotifyPropertyChanged)一些通知Observablecollection项目已更改的技术。此链接中的TrulyObservableCollection似乎正是我要找的。publicclassTrulyObservableCollection:ObservableCollectionwhereT:INotifyPropertyChanged{publicTrulyObservableCollection():base(){Coll

c# - 如何避免在替换所有元素或添加元素集合时多次触发 ObservableCollection.CollectionChanged

我有ObservableCollection集合,我想用新的元素集合替换所有元素,我可以这样做:collection.Clear();或:collection.ClearItems();(顺便说一句,这两种方法有什么区别?)我也可以使用foreach至collection.Add一个接一个,但这会触发多次添加元素集合时相同。编辑:我在这里找到了一个很好的图书馆:EnhancedObservableCollectionwithabilitytodelayordisablenotifications但它似乎不支持silverlight。 最佳答案

c# - ObservableCollection 和 Item PropertyChanged

我已经看到很多关于这个问题的讨论,但也许我只是一个新手,无法理解它。如果我有一个可观察的集合,它是msdn示例(http://msdn.microsoft.com/en-us/library/ms748365.aspx)中“PersonNames”的集合,如果添加或删除PersonName等,我会更新我的View,等等。我想要当我更改PersonName中的属性时,也可以更新我的View。就像我更改名字一样。我可以为每个属性实现OnPropertyChanged并让此类从INotifyPropertyChanged派生,这似乎按预期被调用。我的问题是,View如何从Observable

c# - 如何通过工作线程更新 ObservableCollection?

我有一个ObservableCollectiona_collection;该集合包含“n”项。每个项目A看起来像这样:publicclassA:INotifyPropertyChanged{publicObservableCollectionb_subcollection;Threadm_worker;}基本上,它都连接到一个WPFListView+一个显示b_subcollection的详细信息View控件。在单独的ListView中选择的项目(2向绑定(bind)、属性更新等)。当我开始实现线程时,问题出现了。整个想法是让整个a_collection使用它的工作线程来“工作”,然后

c# - ObservableCollection<> 与 List<>

我有很多嵌套的实体List在每个。例如,我有BaseEntity其中有List.ColumnEntity类有List等等。我们正在使用WPFUI,我们需要跟踪BaseEntity的每个列表中的所有更改.它是通过实例化一个newObservableCollection来实现的。基于所需的列表,并绑定(bind)到ObservableCollection.改变所有这些嵌套的优点和缺点是什么Lists至ObservableCollections?所以我们可以跟踪BaseEntity中的所有变化本身而不重新分配BaseEntity的每个列表修改绑定(bind)ObservableCollect