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