我使用WPFToolkit的DataGrid来显示一些数据。
DataTable在myfile.xaml.cs中用
初始化myTable = new DataTable();
DataColumn col;
col = new DataColumn();
col.DataType = System.Type.GetType("System.Int64");
col.ColumnName = "ID";
col.ReadOnly = true;
col.Unique = false;
myTable.Columns.Add(col);
col = new DataColumn();
col.DataType = System.Type.GetType("System.String");
col.ColumnName = "Name";
col.ReadOnly = true;
col.Unique = false;
myTable.Columns.Add(col);
等等。
正如我所建议的那样,我使用
myGrid.ItemsSource = myTable.DefaultView;
在myfile.xaml.cs中。
在myfile.xaml中我只定义了
<my:DataGrid Name="myGrid" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"/>
当我使用
向表格添加条目时DataRow row = myTable.NewRow();
row["ID"] = 123;
row["Name"] = "MyName";
Action action = () => myTable.Rows.Add(row);
Dispatcher.Invoke(action);
将条目正确添加到GUI中的网格,但是我收到以下错误:
System.Windows.Data Error: 39 : BindingExpression path error: 'ID' property not found on 'object' ''Object' (HashCode=29890231)'. BindingExpression:Path=ID; DataItem='Object' (HashCode=29890231); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Error: 39 : BindingExpression path error: 'Name' property not found on 'object' ''Object' (HashCode=29890231)'. BindingExpression:Path=Name; DataItem='Object' (HashCode=29890231); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
那么如何修复此错误? 任何提示?
谢谢。
答案 0 :(得分:0)
我认为这与您执行代码的顺序有关。尝试更改此内容:
DataRow row = myTable.NewRow();
row["ID"] = 123;
row["Name"] = "MyName";
Action action = () => myTable.Rows.Add(row);
Dispatcher.Invoke(action);
进入这个:
DataRow row = myTable.NewRow();
myTable.Rows.Add(row);
row["ID"] = 123;
row["Name"] = "MyName";
即。 :在将项添加到行
之前,将行添加到dataTable