0

我正在使用 MVVM 处理 WPF,我需要将 DataSet 的表绑定到一些 DataGrid,但它不起作用。我的数据集有 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);
        }
    }
. . . 

为了澄清,我在视图模型构造函数中填充了我的数据集,即使我已经打印了我的数据集的内容并且它有数据并且我已经验证了与我的 DataContext 的连接并且它工作正常。那么,我做错了什么?

希望可以有人帮帮我。先感谢您。

4

2 回答 2

2

如果您有一个无类型的数据集,您可以将您的表公开为像 keith 建议的属性或将您的绑定更改为

<DataGrid ItemsSource="{Binding MyDataSet.Tables[table01]}" />
于 2012-06-19T06:32:40.030 回答
0

您的通用 DataSet 对象上没有名为“table01”的属性,这是您要绑定的。

我建议也许将 MyDataSet.Tables[0] 公开为您的 ViewModel 上的自己的属性?

public DataTable MyTable
    {
        get
        { 
            return myDataSet.Tables[0];  
        }
    }
于 2012-06-18T23:57:28.657 回答