将DataGrid绑定到DataSet的DataTable
问题描述:
我使用MVVM在WPF上工作,我需要将DataSet的表绑定到某些DataGrid,但它不起作用。我的数据集有两个表,称为“table01”和“table02”。将DataGrid绑定到DataSet的DataTable
在我的XAML我写了下面的:
. . .
<UserControl.DataContext>
<scr:MyViewModel/>
</UserControl.DataContext>
<DataGrid Margin="0,0,0,0" Name="myGrid" ItemsSource="{Binding MyDataSet, Path=table01}" />
. . .
但没有数据显示。
在我的视图模型我写了下面的:
. . .
private DataSet myDataSet;
public DataSet MyDataSet
{
get
{
return myDataSet;
}
set
{
SetAndNotify(ref myDataSet, value,() => MyDataSet);
}
}
. . .
只是为了澄清,我填的视图模型构造我的数据集,连我都印我的数据集的内容和它的数据和我已经验证了与我的DataContext的连接,并且它正常工作。那么,我做错了什么?
希望有人能帮助我。先谢谢你。
答
,如果你有一个非类型化的DataSet,你可以暴露你的表像基思属性建议或更改绑定到
<DataGrid ItemsSource="{Binding MyDataSet.Tables[table01]}" />
答
您的通用数据集对象在其上没有名为“table01”的属性,这就是您要绑定的对象。
我建议也许暴露MyDataSet.Tables [0],因为它是你的ViewModel自己的属性?
public DataTable MyTable
{
get
{
return myDataSet.Tables[0];
}
}