0

我有一个 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}"/>

虚拟机:

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");
        }

...
4

0 回答 0