我有一个 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");
}
...