Как сделать привязку в коде? - PullRequest
0 голосов
/ 29 сентября 2010
<Custom:DataGrid Grid.Row="1" Background="{x:Null}" x:Name="datagrid" 
                                 DataContext="{StaticResource dataSetPartner}" 
                                 ItemsSource="{Binding Partner}"....

и

<ObjectDataProvider x:Key="dataSetPartner" MethodName="PartnerStat" ObjectType="{x:Type loc:DataSetCreator}"  />

это отличная работа, но мне нужно написать код ...

мой код не является работой:

adatagrid.DataContext = null;
datagrid.DataContext = this.Resources["dataSetPartner"];

Binding b = new Binding("DataContext");
b.Source = datagrid;
b.Path = new PropertyPath("Partner");
b.Mode = BindingMode.OneWay;
datagrid.SetBinding(DataGrid.ItemsSourceProperty, b);

почему

1 Ответ

2 голосов
/ 29 сентября 2010

ObjectDataProvider используется в XAML для указания источника данных.Вы указываете тип и метод для вызова.Однако нет необходимости использовать ObjectDataProvider в вашем коде, потому что вы можете вызвать метод напрямую.


  var dsc = new DataSetCreator();
  this.DataContext = dsc.PartnerStat();
  // bind a textblock
  Binding b = new Binding("FirstName");
  textBlock1.SetBinding(TextBlock.TextProperty, b);
  // bind the datagrid
  // don't specify a path, it will bind to the entire collection

  var b1 = new Binding(); 
  dataGrid1.SetBinding(DataGrid.ItemsSourceProperty, b1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...