Questions tagged «observablecollection»

4
ObservableCollection和BindingList之间的区别
我想知道和之间的区别ObservableCollection,BindingList因为我都曾用两者来通知Source中的任何添加/删除更改,但实际上我不知道何时比另一个更喜欢一个。 为什么我要选择以下一项? ObservableCollection<Employee> lstEmp = new ObservableCollection<Employee>(); 要么 BindingList<Employee> lstEmp = new BindingList<Employee>();


18
ObservableCollection不会注意到其中的Item发生更改(即使使用INotifyPropertyChanged)
有谁知道为什么此代码不起作用: public class CollectionViewModel : ViewModelBase { public ObservableCollection<EntityViewModel> ContentList { get { return _contentList; } set { _contentList = value; RaisePropertyChanged("ContentList"); //I want to be notified here when something changes..? //debugger doesn't stop here when IsRowChecked is toggled } } } public class EntityViewModel : ViewModelBase { private bool …


23
如何对可观察的集合进行排序?
我有以下课程: [DataContract] public class Pair<TKey, TValue> : INotifyPropertyChanged, IDisposable { public Pair(TKey key, TValue value) { Key = key; Value = value; } #region Properties [DataMember] public TKey Key { get { return m_key; } set { m_key = value; OnPropertyChanged("Key"); } } [DataMember] public TValue Value { get { …

20
清除ObservableCollection时,e.OldItems中没有项目
我这里有些东西真的让我措手不及。 我有一个T的ObservableCollection,充满了项目。我还有一个附加到CollectionChanged事件的事件处理程序。 当您清除集合,将导致以e.Action设置为NotifyCollectionChangedAction.Reset一个CollectionChanged事件。好的,那很正常。但是奇怪的是e.OldItems或e.NewItems都没有任何内容。我希望e.OldItems充满从集合中删除的所有项目。 其他人看到了吗?如果是这样,他们如何解决呢? 一些背景:我正在使用CollectionChanged事件来附加和分离另一个事件,因此,如果我在e.OldItems中没有任何项目……我将无法从该事件分离。 澄清: 我确实知道文档并没有完全说明它必须采用这种方式。但是对于其他所有动作,它都会通知我已完成的操作。因此,我的假设是在“清除/重置”的情况下也会告诉我。 如果您想自己重现,下面是示例代码。首先关闭xaml: <Window x:Class="ObservableCollection.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300" > <StackPanel> <Button x:Name="addButton" Content="Add" Width="100" Height="25" Margin="10" Click="addButton_Click"/> <Button x:Name="moveButton" Content="Move" Width="100" Height="25" Margin="10" Click="moveButton_Click"/> <Button x:Name="removeButton" Content="Remove" Width="100" Height="25" Margin="10" Click="removeButton_Click"/> <Button x:Name="replaceButton" Content="Replace" Width="100" Height="25" Margin="10" Click="replaceButton_Click"/> <Button x:Name="resetButton" Content="Reset" Width="100" Height="25" …

4
如何通过辅助线程更新ObservableCollection?
我有一个ObservableCollection<A> a_collection;集合包含“ n”个项目。每个项目A如下所示: public class A : INotifyPropertyChanged { public ObservableCollection<B> b_subcollection; Thread m_worker; } 基本上,所有这些都连接到WPF列表视图+一个详细信息视图控件,该控件b_subcollection在单独的列表视图中显示所选项目的内容(2向绑定,属性更改的更新等)。 当我开始实施线程时,问题就出现了。整个想法是让a_collection工作线程充分利用它来“完成工作”,然后更新各自的工作,b_subcollections并让gui实时显示结果。 当我尝试它时,我得到一个例外,说只有Dispatcher线程可以修改ObservableCollection,并且工作停止了。 谁能解释这个问题,以及如何解决?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.