WPF DataGrid绑定到XAML中的DataTable

时间:2011-05-02 15:43:57

标签: wpf xaml datagrid binding datatable

我是WPF / XAML的新手。我正在尝试使用XAML代码将DataTable绑定到DataGrid。我所拥有的是一个实现INotifyPropertyChanged的自定义DataContainer类的实例。这个类有一个属性:

private DataTable totalsStatus = new DataTable();
public DataTable TotalsStatus
{
    get { return totalsStatus; }
    set
    {
        totalsStatus = value;
        NotifyPropertyChanged("TotalsStatus");
    }
}

现在,在我的MainWindow的C'tor中,我有这个,它就像一个魅力:

Binding b = new Binding();
b.Source = DataContainer;
b.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
b.Path = new PropertyPath("TotalsStatus");
DataGridMain.SetBinding(DataGrid.ItemsSourceProperty, b);

如何在XAML中进行此绑定?

1 个答案:

答案 0 :(得分:1)

您需要使用objectdataprovider

<ObjectDataProvider x:Key="yourdataproviderclass" 
                    ObjectType="{x:Type local:yourdataproviderclass}" />

<ObjectDataProvider x:Key="dtable" 
                    ObjectInstance="{StaticResource yourdataproviderclass}"
                    MethodName="GetTable"/> <!--here would be the method that returns your datasource-->

然后,您可以使用

将其绑定到XAML中的数据网格
<DataGrid ItemsSource="{Binding Source={StaticResource dtable}}" ></DataGrid>

虽然有不同的方法可以在xaml中进行绑定,所以请稍微使用它。