问题标签 [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 投票
5 回答
3682 浏览

wpf - 为什么 ObservableCollection 不会在项目更改时更新?

我注意到,ObservableCollection在 WPF 中,仅通过添加或删除列表中的项目而不是通过编辑它来反映 GUI 中的更改。

这意味着我必须改写我的自定义类 MyObservableCollection。这种行为的原因是什么?

谢谢

0 投票
1 回答
287 浏览

wcf - 通过服务在数据库中插入实体时出现问题

我有一个 Silverlight 应用程序,并且正在使用 WCF 服务来访问我的数据库信息。为此,我正在使用 EntityFramework。我有一个类 Items(映射到我的 DB 表 Items),它有一个 ObservableCollection 关键字(映射到我的 DB 表关键字的类)对象。

从界面中,我创建了一个包含所有属性集的 Items 对象,包括关键字列表(如果关键字已经存在,我添加由 EntityFramework 检索的对象,如果关键字不存在,我从界面创建一个新的关键字对象并添加它到我的项目的 ObservableCollection)。当我将 Item 对象传递给服务并尝试将其添加到 DB 时,我收到以下错误:ObjectStateManager 中已存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

我怎么解决这个问题?

0 投票
4 回答
600 浏览

c# - 无法使用 fieldinfo 访问对象字段

我有一个方法可以接收对象的可观察集合(从 Web 服务返回)并根据它们的属性分析它们。

这是该方法的代码片段

私人双重分析(ObservableCollection mobjColl){

我的问题是 fieldinfo fi 始终为空。我可以使用对象名称访问对象的每个字段(在 foreach 中),但是永远不会填充 fieldinfo 对象。我什至尝试使用 GetFields 方法,但它不返回数组......

PS:对象字段是公开的。在 getfield 中使用 bindingflags 也没有帮助。

0 投票
2 回答
5220 浏览

wpf - WPF ListBox 未绑定到 INotifyCollectionChanged 或 INotifyPropertyChanged 事件

我有以下测试代码:

和 XAML

外部列表框在加载时填充。当扩展器展开时,我然后设置ItemsSource内部列表框的属性(我这样做而不是使用绑定的原因是这个操作很慢,我只希望它在用户选择查看项目时发生)。内部列表框呈现良好,但它实际上并没有订阅CollectionChanged集合上的事件。我已经尝试过使用ICollection而不是IEnumerable添加和INotifyPropertyChanged替换。我实际上可以让它工作的唯一方法是破坏我的类并继承自. 我试图扮演自己的角色而不是使用的理由INotifyCollectionChangedINotifyPropertyChangedSomeCollectionObservableCollection<SomeItem>INotifyCollectionChangedObservableCollection是因为我在真实代码中包装了一个 COM 集合。该集合将通知添加/更改/删除,我正在尝试将这些转换INotify为 WPF 的事件。

希望这足够清楚(为时已晚)。

0 投票
1 回答
9235 浏览

c# - 将 Observable 对象集合保存到 XML 文件的最简单方法是什么?

我有一个包含客户对象的 Observable 集合:

将其转储到 XML 文件以便稍后读取的最简单方法是什么?

0 投票
7 回答
22258 浏览

c# - 我怎样才能转换成 ObservableCollection

How can i cast

from ObservableCollection<TabItem> into ObservableCollection<object>

this doesnt work for me

(ObservableCollection<obje

How can i cast

this doesnt work for me


You can't. ObservableCollection<TabItem> does not derive from ObservableCollection<object>.

If you explain why you would want to perhaps we can point out an alternative interface you can use.

0 投票
3 回答
10789 浏览

wpf - WPF 网格数据绑定

我有一个只有 1 行的网格。我希望由网格的数据上下文确定列的数量。

例如,如果我有一个名为“Names”的 ObservableCollection 属性中公开的名称列表,该属性返回“Fred”、“Joe”和“Anne”,我希望网格中有三列,每列都有一个绑定到每个的文本框姓名。

到目前为止我的想法:

1) 在代码隐藏中手动构建网格,并在 ObservableCollection 更改时重新构建它。我没有这样做,因为它看起来有点笨拙,而不是 WPF 的做事方式。

2) 使用 Grid 的 ColumnDefinitions 属性创建一个绑定。这似乎更正确,但 Grid 上没有 ColumnDefinition 的依赖属性。

0 投票
1 回答
1296 浏览

.net - ObservableCollection FileSystemWatcher ListBox 更新问题

我有一个 ObservableCollection,它使用 FileSystemWatcher 自动添加已添加到目录中的其他 PNG 图像。ListBox 使用以下 XAML 将 ItemsSource 数据绑定到 Photos 对象。

但是,当 PNG 文件添加到受监视的目录时,将调用 OnPhotoCreated 事件(断点确认这一点),但 ListBox UI 并未更新。有任何想法吗?

更新 #1: 我尝试了一个事件,如下所示。这会导致 InvalidOperationException 崩溃,“调用线程无法访问此对象,因为不同的线程拥有它”当新图像试图滚动到视图中时。我希望不需要 Refresh 方法。

0 投票
2 回答
2641 浏览

c# - C# WPF 数据网格:列数始终等于 0

我在 C# 中创建了一个 WPF takelit 数据网格,并且 ItemsSource 在 XAML 中设置。列是自动生成的。

我正在尝试做一个使用 ObservableCollection 的数据网格,很像这个网站上的内容。

在底部,您会找到一个可以下载的示例(这里是链接

我的问题是我正在尝试更改特定列的某些属性(例如: Datagrid.Columns[index]. Property)但这似乎不起作用,因为列数始终等于 0。因此,我不能使用我要使用的索引更改属性,因为 Columns 集合中似乎没有任何内容。然而在运行时有显示的列。

那么,列数怎么可能等于0呢?

如何在我的情况下更改特定列的属性?

0 投票
1 回答
5195 浏览

wpf - 如何将文本框绑定到集合中的单个元素

我有一个名为 List 的 ObservableCollection 类,我正在尝试单独绑定到文本框。我已经试了:

StringObject 类只是:

有人可以建议吗?