将Datatable绑定到WPF中的数据网格

时间:2015-05-25 20:29:54

标签: c# wpf data-binding

我的C#4.0应用中有一个视图模型,其中使用服务调用创建了eval "count $line" 。我想将它绑定到我的XAML文件中的System.Data.DataTable

我尝试了跟踪行DataGrid_Loaded事件,但是在我的数据表在视图模型中创建之前它被激活了。

XAML:

datagrid

xaml.cs:

<dg:DataGrid Name="myDataGrid" Loaded="DataGrid_Loaded"/>

1 个答案:

答案 0 :(得分:1)

检查以下建议:在您的代码中,您必须将网格DataContext设置为DataTable

myDataGrid.DataContext = myViewModel.myDataTable.DefaultView;

在您的XAML中,您需要指出ItemsSource必须依赖于绑定:

<dg:DataGrid Name="myDataGrid" ItemsSource="{Binding}"/>

关注this link了解详情。另外,您可以找到一个包含CodeProject的解释的综合示例。

编辑:

不同的方法是将您的表保留为属性。在窗口中将窗口的数据上下文设置为视图模型,然后在视图模型中设置绑定到属性:

视图模型:

public DataTable myDataTable { get; set; }

在您的窗口中(显示数据网格的窗口:

public MainWindow()
{
    InitializeComponent();
    this.DataContext = myViewModel;
}

这样,您在主窗口XAML中的绑定将知道在哪里搜索数据 - 在myViewModel中。

在您的XAML中,使用此方法不需要网格名称。但绑定必须指定数据源的名称:

<DataGrid ItemsSource="{Binding myDataTable}" AutoGenerateColumns="True"/>