将DataGrid绑定到DataTable的DataView不会更新新列

时间:2012-10-18 19:16:28

标签: wpf datagrid datatable dataview

我有一个DataTable,我从程序的另一部分创建行和列。我将此DataTable的默认DataView绑定到DataGrid。我按以下格式更新我的DataTable:

1:向DataTable添加三列

2:一次向先前创建的列中的DataTable添加20行数据。

3:继续添加1000行数据。

这可以正常工作。接下来,我使用新数据调用我的UpdateTable方法,这将导致创建另外三列,然后从第一行到第1000行填充这些列的数据.DataTable正确更新,但DataGrid不显示新添加的列。

当更新行时绑定正常工作的原因可能是什么,但是当我添加其他列绑定失败时?

我为了简洁而遗漏了DataTable更新代码。我确信这可以按照设计工作。

仅供参考:这个代码与第三方DataGrid完美配合,但我宁愿使用Microsoft DataGrid。

XAML:

<DataGrid AutoGenerateColumns="True" Grid.Row="2" ItemsSource="{Binding View}"/>

VM:

public class ViewModel : INotifyPropertyChanged
    {
        private DataTable table = new DataTable();

         public DataTable Table
        {
            get
            {
                return table;
            }

            set
            {
                table = value;
                onPropertyChanged("Table");
            }
        }

        public DataView View
        {
            get
            {
                return table.DefaultView;
            }            
        }

        public UpdateTable(UpdateData x)
        {
          //Algorithm to update the DataTable based on received data
          //Rows are dynamically being added and columns are dynamically being added
          onPropertyChanged("Table");
          onPropertyChanged("View");
        }

...

0 个答案:

没有答案