10

C#コードでこれに相当するものは何ですか?

<ListView
    x:Name="taskItemListView"
    DataContext="{Binding SelectedItem, ElementName=itemListView}"
    ItemsSource="{Binding taskItems}">
...
</ListView>

次のコードを試してみましたが、うまくいかないようです...

Binding b = new Binding();
b.Path = new PropertyPath("taskItems");

DependencyProperty dp = DependencyProperty.Register("itemsSource", typeof(object), typeof(object), null);
BindingOperations.SetBinding(taskItemListView, dp, b);

編集

@ sa_ddam213の回答に基づいて、これはうまくいきました:

Binding dataContextBinding = new Binding();
dataContextBinding.Path = new PropertyPath("SelectedItem");
dataContextBinding.Source = itemListView;
BindingOperations.SetBinding(taskItemListView, ListView.DataContextProperty, dataContextBinding );

Binding sourceBinding = new Binding();
sourceBinding.Path = new PropertyPath("taskItems");
BindingOperations.SetBinding(taskItemListView, ListView.ItemsSourceProperty, sourceBinding );
4

2 に答える 2

6

このようなものはうまくいくはずです:

BindingOperations.SetBinding(taskItemListView, ListView.DataContextProperty, new Binding("SelectedItem") { Source = itemListView});
BindingOperations.SetBinding(taskItemListView, ListView.ItemsSourceProperty, new Binding("taskItems") { Source = this });

注:「Source = this」thisは、を保持しているクラスに等しいtaskItemsSelectedItem

于 2012-12-16T04:51:34.940 に答える
1

これを行う簡単な方法は、SetValue を使用することです。

taskItemListView.SetValue(ListView.ItemsSourceProperty, this.Source);

詳細はこちら: DependencyObject.SetValue メソッド

于 2013-08-23T17:52:53.243 に答える