ItemsSource-Bindung programmgesteuert
Was ist das äquivalent in c# - code?
<ListView
x:Name="taskItemListView"
DataContext="{Binding SelectedItem, ElementName=itemListView}"
ItemsSource="{Binding taskItems}">
...
</ListView>
Ich habe versucht den folgenden code, aber es scheint nicht zu funktionieren...
Binding b = new Binding();
b.Path = new PropertyPath("taskItems");
DependencyProperty dp = DependencyProperty.Register("itemsSource", typeof(object), typeof(object), null);
BindingOperations.SetBinding(taskItemListView, dp, b);
Bearbeiten:
Basierend auf @sa_ddam213 Antwort, das hat funktioniert:
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 );
Du musst angemeldet sein, um einen Kommentar abzugeben.
So etwas wie dies funktionieren sollte:
Hinweis: "Quelle = dieses"
this
gleich die Klasse, die dietaskItems
,SelectedItem
Einen einfachen Weg, dies zu tun ist durch SetValue:
Mehr Informationen hier: DependencyObject.SetValue-Methode