如何更新DataGrid中与string [] []数组绑定的单元格

时间:2010-01-24 13:03:32

标签: c# wpf datagrid arrays

我有一个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单元格中的信息?

3 个答案:

答案 0 :(得分:1)

如果您绑定到的数据项实现了INotifyPropertyChanged,则更新将自动发生,因为数据项/集合将广播属性已更改,并且数据网格将自动更新而无需您执行任何操作(手动网格重新绑定可能会很慢,具体取决于数据量)。

因此,如果您将绑定的数据结构从字符串更改为实现INotifyPropertyChanged的内容(即使您自己编写该数据对象,这很容易),并将网格设置为自动生成列,然后,您需要做的就是设置dataGrid.ItemSource属性并根据需要更新各个数据对象。

答案 1 :(得分:0)

重新绑定数据数组。

答案 2 :(得分:0)

Heres a Hack。

如果您知道哪个列已更新,则可以将列上的绑定设置为新绑定(具有相同路径),这将强制绑定重新评估整个列。多数钱,我知道。我不会这样做,我将绑定到具有属性的对象,就像slugster建议的那样。