将DataGrid绑定到DataSet的DataTable

时间:2012-06-18 21:53:12

标签: c# wpf mvvm datagrid dataset

我正在使用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的连接并且它正常工作。那么,我做错了什么?

希望有人可以帮助我。提前谢谢。

2 个答案:

答案 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];  
        }
    }