gpt4 book ai didi

wpf - 可观察集合项的更改未反射(reflect)在数据网格中

转载 作者:行者123 更新时间:2023-12-02 20:12:24 26 4
gpt4 key购买 nike

我使用可观察集合作为 WPF 中数据网格的数据源。

我的数据网格中有大约 20 列。

如果我对特定单元格的值进行任何更改,我将无法在 UI 中看到相同的反射(reflect)。单元格显示相同的旧值。如果我单击该单元格,则会显示最新值。

我将用一个例子来解释这一点。假设我在可观察集合中有两个属性“名称”和“年龄”。如果我从 View 模型向可观察集合添加一些 4 或 5 列,则 UI 中也会显示相同的内容。如果我更改 View 模型中特定行中年龄的值,则最新值在网格中不可见。当我单击该单元格。

有人能告诉我需要做什么才能让更改反射(reflect)在 UI 中吗?

最佳答案

ObservableCollection 继承了 INotifyCollectionChanged,以便在添加或删除元素时 View 可以更新,以及 INotifyPropertyChanged,以便在刷新(设置)整个列表时 View 可以更新。

但是,一旦集合容器(如数据网格)中包含可观察集合中的项目,该行的数据上下文就成为源对象(即可观察集合中包含的对象)。如果此源对象未实现 INotifyPropertyChanged,则对其数据的更改将不会传播到 UI。

基本上,无论 ObservableCollection 聚合什么对象,也都需要实现 INotifyPropertyChanged。

关于wpf - 可观察集合项的更改未反射(reflect)在数据网格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com