我正在使用MVVM处理WPF,我需要将DataSet的表绑定到某些DataGrids,但它无法正常工作。我的dataSet有2个名为“table01”和“table02”的表。
在我的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);
}
}
. . .
为了澄清,我在视图模型构造函数中填充了我的dataSet,即使我已经打印了dataSet的内容并且它有数据,我已经验证了与DataContext的连接并且它正常工作。那么,我做错了什么?
希望有人可以帮助我。提前谢谢。
答案 0 :(得分:2)
如果您有一个无类型的DataSet,您可以将您的表公开为像keith建议的属性或将您的绑定更改为
<DataGrid ItemsSource="{Binding MyDataSet.Tables[table01]}" />
答案 1 :(得分:0)
您的通用DataSet对象上没有名为&#39; table01&#39;的属性,这是您尝试绑定的内容。
我建议将MyDataSet.Tables [0]作为ViewModel上自己的属性公开?
public DataTable MyTable
{
get
{
return myDataSet.Tables[0];
}
}