Связывание WPF DataGrid с DataTable в XAML - PullRequest
1 голос
/ 02 мая 2011

Я совершенно новичок в WPF / XAML. Я пытаюсь разработать код XAML для привязки DataTable к DataGrid. У меня есть экземпляр пользовательского класса DataContainer, который реализует INotifyPropertyChanged. У этого класса есть свойство:

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

теперь, в C'tor моего MainWindow у меня есть это, которое работает как шарм:

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

Как сделать эту привязку в XAML?

1 Ответ

1 голос
/ 02 мая 2011

Вам нужно использовать 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 есть разные способы связывания, поэтому поэкспериментируйте немного.

...