我有一个简单的控件,其中包含一个 DataGrid,其 ItemsSource 绑定到一个 DataTable。当我填充 DataTable 时,可以看到 DataGrid 中添加了行,但没有显示任何数据。我没有使用任何特殊样式来设置这个 DataGrid(使用默认样式),唯一的设置是 AutoGenerateColumn 设置为 True。
在 XAML 中:
在 XAML 中:
<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding TableResult}"/>
在视图模型中
private DataTable tableResult = new DataTable();
public DataTable TableResult
{
get { return tableResult; }
set { tableResult = value; OnPropertyChanged("TableResult"); }
}
private void FillTable()
{
DataColumn c = new DataColumn();
c.ColumnName = "Col1";
this.TableResult.Columns.Add(c);
c = new DataColumn();
c.ColumnName = "Col2";
this.TableResult.Columns.Add(c);
DataRow row1 = this.TableResult.NewRow();
row1["Col1"] = "Blue";
row1["Col2"] = "12";;
this.TableResult.Rows.Add(row1);
DataRow row2 = this.TableResult.NewRow();
row2["Col1"] = "Red";
row2["Col2"] = "18";
this.TableResult.Rows.Add(row2);
DataRow row3 = this.TableResult.NewRow();
row3["Col1"] = "Yellow";
row3["Col2"] = "27";
this.TableResult.Rows.Add(row3);
}