如何部分更新DataGrid - 仅适用于一列

时间:2014-08-18 07:50:30

标签: c# wpf datagrid

如何在DataGrid中部分更新WPF? 我想只更新一个列及其DataGrid内的所有值,而不刷新整个网格。我正在使用计时器,它将每隔XX秒重新加载网格和最新数据。 我怎么能这样做?

网格行上有双击事件,因此如果用户在此时单击时整个网格都会刷新,则它将无法处理double click。同样如果我有HyperLink列。我相信如果我部分更新可以处理这种情况吗?

现在绑定是:

dataGrid.DataContext = myCollection;
dataGrid.Items.Refresh();

对于那些刷新网格并有类似问题的人来说,这是一个想法: 仅当DataGrid的值发生更改时,我才会刷新myCollection计时器刻度事件。

1 个答案:

答案 0 :(得分:2)

在WPF中,我们使用数据元素而不是UI元素...而不是试图操纵DataGrid中每行的列值,您应该考虑将自定义类实例的集合绑定到数据DataGrid.ItemsSource属性,然后只更新绑定到列的数据的类的任何属性。见这个例子:

<DataGrid ItemsSource="{Binding Items}" ... />

...

foreach (YourClass item in Items)
{
    item.PropertyThatIsDataBoundToYourColumn = someNewValue;
}

为了使这项工作正常,您的自定义YourClass课程应实施INotifyPropertyChanged interface