我有一个DataGrid和一个string [] [] dataSource数组作为此DataGrid的源数据。我使用以下代码来设置绑定:
dataGrid.ItemsSource = dataSource;
for (int i = 0; i < columns; i++)
{
dataGrid.Columns.Add(new DataGridTextColumn
{
Binding = new Binding(string.Format("[{0}]", i))
});
}
当string [i] [j]中的值发生变化时,如何更新DataGrid单元格中的信息?
答案 0 :(得分:1)
如果您绑定到的数据项实现了INotifyPropertyChanged,则更新将自动发生,因为数据项/集合将广播属性已更改,并且数据网格将自动更新而无需您执行任何操作(手动网格重新绑定可能会很慢,具体取决于数据量)。
因此,如果您将绑定的数据结构从字符串更改为实现INotifyPropertyChanged的内容(即使您自己编写该数据对象,这很容易),并将网格设置为自动生成列,然后,您需要做的就是设置dataGrid.ItemSource
属性并根据需要更新各个数据对象。
答案 1 :(得分:0)
重新绑定数据数组。
答案 2 :(得分:0)
Heres a Hack。
如果您知道哪个列已更新,则可以将列上的绑定设置为新绑定(具有相同路径),这将强制绑定重新评估整个列。多数钱,我知道。我不会这样做,我将绑定到具有属性的对象,就像slugster建议的那样。