问题标签 [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.
wpf - 为什么 ObservableCollection 不会在项目更改时更新?
我注意到,ObservableCollection
在 WPF 中,仅通过添加或删除列表中的项目而不是通过编辑它来反映 GUI 中的更改。
这意味着我必须改写我的自定义类 MyObservableCollection。这种行为的原因是什么?
谢谢
wcf - 通过服务在数据库中插入实体时出现问题
我有一个 Silverlight 应用程序,并且正在使用 WCF 服务来访问我的数据库信息。为此,我正在使用 EntityFramework。我有一个类 Items(映射到我的 DB 表 Items),它有一个 ObservableCollection 关键字(映射到我的 DB 表关键字的类)对象。
从界面中,我创建了一个包含所有属性集的 Items 对象,包括关键字列表(如果关键字已经存在,我添加由 EntityFramework 检索的对象,如果关键字不存在,我从界面创建一个新的关键字对象并添加它到我的项目的 ObservableCollection)。当我将 Item 对象传递给服务并尝试将其添加到 DB 时,我收到以下错误:ObjectStateManager 中已存在具有相同键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。
我怎么解决这个问题?
c# - 无法使用 fieldinfo 访问对象字段
我有一个方法可以接收对象的可观察集合(从 Web 服务返回)并根据它们的属性分析它们。
这是该方法的代码片段
私人双重分析(ObservableCollection mobjColl){
我的问题是 fieldinfo fi 始终为空。我可以使用对象名称访问对象的每个字段(在 foreach 中),但是永远不会填充 fieldinfo 对象。我什至尝试使用 GetFields 方法,但它不返回数组......
PS:对象字段是公开的。在 getfield 中使用 bindingflags 也没有帮助。
wpf - WPF ListBox 未绑定到 INotifyCollectionChanged 或 INotifyPropertyChanged 事件
我有以下测试代码:
和 XAML
外部列表框在加载时填充。当扩展器展开时,我然后设置ItemsSource
内部列表框的属性(我这样做而不是使用绑定的原因是这个操作很慢,我只希望它在用户选择查看项目时发生)。内部列表框呈现良好,但它实际上并没有订阅CollectionChanged
集合上的事件。我已经尝试过使用ICollection
而不是IEnumerable
添加和INotifyPropertyChanged
替换。我实际上可以让它工作的唯一方法是破坏我的类并继承自. 我试图扮演自己的角色而不是使用的理由INotifyCollectionChanged
INotifyPropertyChanged
SomeCollection
ObservableCollection<SomeItem>
INotifyCollectionChanged
ObservableCollection
是因为我在真实代码中包装了一个 COM 集合。该集合将通知添加/更改/删除,我正在尝试将这些转换INotify
为 WPF 的事件。
希望这足够清楚(为时已晚)。
c# - 将 Observable 对象集合保存到 XML 文件的最简单方法是什么?
我有一个包含客户对象的 Observable 集合:
将其转储到 XML 文件以便稍后读取的最简单方法是什么?
wpf - WPF 网格数据绑定
我有一个只有 1 行的网格。我希望由网格的数据上下文确定列的数量。
例如,如果我有一个名为“Names”的 ObservableCollection 属性中公开的名称列表,该属性返回“Fred”、“Joe”和“Anne”,我希望网格中有三列,每列都有一个绑定到每个的文本框姓名。
到目前为止我的想法:
1) 在代码隐藏中手动构建网格,并在 ObservableCollection 更改时重新构建它。我没有这样做,因为它看起来有点笨拙,而不是 WPF 的做事方式。
2) 使用 Grid 的 ColumnDefinitions 属性创建一个绑定。这似乎更正确,但 Grid 上没有 ColumnDefinition 的依赖属性。
.net - ObservableCollection FileSystemWatcher ListBox 更新问题
我有一个 ObservableCollection,它使用 FileSystemWatcher 自动添加已添加到目录中的其他 PNG 图像。ListBox 使用以下 XAML 将 ItemsSource 数据绑定到 Photos 对象。
但是,当 PNG 文件添加到受监视的目录时,将调用 OnPhotoCreated 事件(断点确认这一点),但 ListBox UI 并未更新。有任何想法吗?
更新 #1: 我尝试了一个事件,如下所示。这会导致 InvalidOperationException 崩溃,“调用线程无法访问此对象,因为不同的线程拥有它”当新图像试图滚动到视图中时。我希望不需要 Refresh 方法。
c# - C# WPF 数据网格:列数始终等于 0
我在 C# 中创建了一个 WPF takelit 数据网格,并且 ItemsSource 在 XAML 中设置。列是自动生成的。
我正在尝试做一个使用 ObservableCollection 的数据网格,很像这个网站上的内容。
在底部,您会找到一个可以下载的示例(这里是链接)
我的问题是我正在尝试更改特定列的某些属性(例如: Datagrid.Columns[index]. Property)但这似乎不起作用,因为列数始终等于 0。因此,我不能使用我要使用的索引更改属性,因为 Columns 集合中似乎没有任何内容。然而在运行时有显示的列。
那么,列数怎么可能等于0呢?
和
如何在我的情况下更改特定列的属性?
wpf - 如何将文本框绑定到集合中的单个元素
我有一个名为 List 的 ObservableCollection 类,我正在尝试单独绑定到文本框。我已经试了:
StringObject 类只是:
有人可以建议吗?