【发布时间】:2015-05-10 08:29:05
【问题描述】:
我的 WPF 应用程序中有一个 DataGrid。对于这个 DataGrid,我将 ItemSource 设置如下
ItemsSource="{Binding Path=MyItems}"
MyItems 是 MyViewModel 中声明的 MyItem 列表
// ItemsSource for MyItem Grid
public List<MyItem> MyItems {get;set; }
MyItem 具有一组属性,每个属性都映射到 DataGrid 中的每一列。在初始化时,我正在填写 MyItems;所以 DataGrid 在每一列中显示 MyItems 值。
在一个按钮命令中,我正在创建一个工作线程,工作线程修改 MyItems 的属性,这些属性显示在网格中。例如,MyItem 有一个名为“Status”的属性,它绑定到网格列。状态值在工作线程中更改。我正在调用的工作线程结束
OnPropertyChanged("MyItems"); //force UI refresh
但网格中的状态列值没有更新。
单击数据网格列后,只有值会刷新。如何从工作线程刷新数据网格?
【问题讨论】:
-
显示
MyItem的代码。这需要是可观察的。 (另外,通知需要在 UI 线程中发送。
标签: c# wpf datagrid worker-thread