以编程方式绑定ItemsSource

dca*_*tro 8 c# xaml binding windows-runtime

c#代码中的等价物是什么?

<ListView
    x:Name="taskItemListView"
    DataContext="{Binding SelectedItem, ElementName=itemListView}"
    ItemsSource="{Binding taskItems}">
...
</ListView>
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但它似乎不起作用......

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

DependencyProperty dp = DependencyProperty.Register("itemsSource", typeof(object), typeof(object), null);
BindingOperations.SetBinding(taskItemListView, dp, b);
Run Code Online (Sandbox Code Playgroud)

编辑:

基于@ 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 );
Run Code Online (Sandbox Code Playgroud)

sa_*_*213 5

这样的事情应该工作:

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

注意:“来源=此” this等于持有的类taskItemsSelectedItem