Linking Items

What is equivalent to this in C # code?

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

I tried the following code but it does not work ...

 Binding b = new Binding(); b.Path = new PropertyPath("taskItems"); DependencyProperty dp = DependencyProperty.Register("itemsSource", typeof(object), typeof(object), null); BindingOperations.SetBinding(taskItemListView, dp, b); 

Edit

Based on @ sa_ddam213 answer this worked:

 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 ); 
+7
source share
2 answers

Something like this should work:

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

Note: "Source = this" this is equal to the class that holds taskItems , SelectedItem

+4
source

An easy way to do this is SetValue:

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

More information here: DependencyObject.SetValue Method

0
source

All Articles