以编程方式绑定ItemsSource

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

 ...  

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

 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 ); 

这样的事情应该有效:

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

注意:“Source = this” this等于持有taskItemsSelectedItem

一个简单的方法是通过SetValue:

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

更多信息请访问: DependencyObject.SetValue方法