问题标签 [observablecollection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
931 浏览

wpf - 从 TextBox 向 ObservableCollection 添加新项目保持绑定?

我有一个 ListControl 填充有ObservableCollection. 我TextBox在用户控件上也有一个“添加新项目”。当我在 中输入文本TextBox并单击“添加”时,该项目会通过适当的逻辑并添加到我ObservableCollection的 ListControl 中,我的 ListControl 会立即反映出来。到目前为止,一切都很好。

然而。那TextBox仍然是我刚刚添加的项目...如果我尝试更改或退格,TextBox我刚刚添加的项目也反映了更改!添加新项目后如何TextBox清除?我正在使用 MVVM 方法,所以我TextBox的必然是{Binding Path=Object.Name}.

有任何想法吗?

0 投票
20 回答
208969 浏览

c# - ObservableCollection 没有注意到其中的项目何时更改(即使使用 INotifyPropertyChanged)

有谁知道为什么这段代码不起作用:

ViewModelBase包含RaisePropertyChanged等的所有内容,并且它适用于除此问题之外的所有其他内容..

0 投票
1 回答
3326 浏览

wpf - ObservableCollection 未更新 C# WPF 中的多重绑定

我有一个 TreeView,它从数据绑定的 ObservableCollections 创建其所有项目。我有一个 GameNode 对象的层次结构,每个对象都有两个 ObservableCollections。一个集合具有 EntityAttrib 对象,另一个具有 GameNode 对象。您可以说 GameNode 对象代表文件夹,而 EntityAttrib 代表文件。为了在同一个 TreeView 中同时显示属性和 GameNode,我使用了多重绑定。这一切在启动时都可以正常工作,但是当我在层次结构中的某处添加新的 GameNode 时,TreeView 不会更新。我在转换器方法中设置了一个断点,但在添加新的 GameNode 时没有调用它。似乎 ObservableCollection 没有通知 MultiBinding 更改。如果我注释掉 MultiBinding 并且只绑定 GameNode 集合,它会按预期工作。

XAML:

C#:

GameNodeList 是 ObservableCollection 的子类

0 投票
2 回答
1952 浏览

c++-cli - 如何从托管 C++ 中的 ObservableCollection 继承

当我尝试在从 ObservableCollection 继承的托管 C++ 中创建一个类时,我收到错误:错误 C2039: 'ObservableCollection' : is not a member of 'System::Collections::ObjectModel'

这是我的代码:

为什么我不能从 C++-CLI 使用这个类?我在 C# 中使用它没有任何困难。

0 投票
2 回答
2160 浏览

silverlight - Silverlight 中的键控 ObservableCollection

我想在 Silverlight 中实现一个键控可观察集合,它将基于名为 Name 的属性存储唯一对象。一种方法是使用 ObservableCollectionEx(另一个 stackoverflow 帖子中的示例)类订阅包含的元素上的所有 PropertyChanged 事件,并检查 name 属性是否更改。更好的是,创建我自己的事件,它会告诉我 name 属性已更改,如果 item 已存在则抛出 ValidationException。我不一定想用索引器 this[Name] 检索对象。

像这样的东西:

还有其他更优雅的解决方案吗?简单得多?谢谢,阿德里安

PS我知道Wpf博士还整理了一个ObservableDictionary,很容易将其移至Silvelight,但我不知道如何将它与DataForm等一起使用。

0 投票
3 回答
1331 浏览

.net - 有清单吗在 .NET 2 中,当列表更改时引发事件?

我过去使用ObservableCollection<T>过,但这似乎属于 WPF,因此属于 .NET 3。

如果没有合适的接口呢?INotifyPropertyChanged似乎不太适合集合,而INotifyCollectionChanged仅在 .NET 3 及更高版本中受支持。

0 投票
1 回答
1206 浏览

wpf - 检查是否是 ObservableCollection,如果是,则显示替代 xaml!

我有一个ListView与 a 绑定的 a ObservableCollection。此外,我列出了ObservableCollection. 现在,有没有一种好方法可以检查是否ObservableCollection为空,并显示替代 xaml?

0 投票
1 回答
382 浏览

wpf - 没有 INotifyProperChanged 的​​ Observable 集合,用于单向绑定

对于 Silverlight 或 WPF,当控件绑定到 Observable 集合时,我只对在控件中反映的集合添加/删除感兴趣 - 即一种方式绑定 - 我认为在类中不需要 INotifyPropertyChanged 是否正确集合组成。但是在这种情况下,对现有集合元素的更改不会反映在用户界面中。

0 投票
1 回答
754 浏览

vb.net - 缺少 ObservableCollection(T 的)

我正在对 WPF 和 MVVM 进行实验,在 Vb.net 上编写 ViewModel 时,我注意到我的 ObservableCollection(of T)s T_T 下有这条红色波浪线

无论如何,该应用程序位于 WPF 和 VB.Net 中,在 .Net Framework 3.5(我检查过)下,并且我的班级顶部有一个“Imports System.Collections.ObjectModel”。Intellisense 显示 System.Collections.ObjectModel 上除 ObservableCollection 之外的其他类。

这是一个截图

那么,为什么 ObservableCollection(of T) 不见了,我该如何让它出现?:( 提前致谢。

0 投票
2 回答
2542 浏览

vb.net - 在 VB.Net 中序列化 ObservableCollection(of T)

我在 VB.Net 中尝试了一段时间的 MVVM,并从我的一些实体开始使用 List(of T)s,我将其 xml 序列化到磁盘。现在,我更新了 Lists 使用的类来实现 INotifyPropertyChanged,因此我还将 List(of T)s 更改为 ObservableCollection(of T)s。

之后,XML 序列化程序停止工作 :'( 一位同事告诉我 ObservableCollections 与通用列表不同,不可序列化。

如果是这样,那么我怎样才能使它们可序列化?先谢谢了~!:D