c# - 动态分配时,ObservableCollection 刷新不起作用

标签 c# wpf datagrid

public ObservableCollection<Model.ChildCommand> ChildCommands { get; private set; }

ChildCommands 绑定(bind)到 Datagrid。

两个段都向我展示了 Datagrid 中的项目。

但是在第一个段中,当集合更改时,Datagrid 项目不会自动刷新。
使用第二段,刷新工作。

第 1 段:
var childs = from child in m_context.ChildCommand.Local
                         select child;


this.ChildCommands = new ObservableCollection<Model.ChildCommand>(childs);

第 2 部分:
this.ChildCommands = m_context.ChildCommand.Local;

如何使用 Segment 1 获得自动刷新?

最佳答案

Segment 1 未自动更新的原因是您最终绑定(bind)到了不同的 ObservableCollection 实例。

当 m_context.ChildCommand.Local 更改时,您的 Segment 2 数据网格会收到通知,因为它已绑定(bind)到该可观察集合实例。但是,您的 Segment 1 数据网格绑定(bind)到不同的 observable 集合实例(当您说 new ObservableCollection(childs) 时您自己创建了该实例。

如果您真的希望它们都绑定(bind)到 m_context.ChildCommand.Local 可观察集合,那么您应该这样实现它,而不是为 Segment 1 创建不同的可观察集合实例。

关于c# - 动态分配时,ObservableCollection 刷新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507294/

相关文章:

compact-framework - 使用 Compact Framework 在数据网格中显示图像

c# - 从另一个线程返回对象?

c# - 捕获异步方法中的异常

c# - 如何在WPF或.net Winform程序中嵌入外部程序?

c# - WPF Bing map 将图钉放置在不正确的位置

wpf - MVVM WPF datagrid数据录入问题

apache-flex - 如何根据多列对 flex 数据网格进行排序?

c# - 为什么 System.Drawing.Image.GetThumbnailImage 需要一个未使用的委托(delegate)?

c# - 如何避免方法重载?

WPF 数据网格标题文本绑定(bind)