绑定的ItemsSource编程 [英] Binding ItemsSource programmatically

查看:135
本文介绍了绑定的ItemsSource编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是这在C#code等价?

 < ListView控件
    X:NAME =taskItemListView
    的DataContext ={结合的SelectedItem,的ElementName = itemListView}
    的ItemsSource ={结合taskItems}>
...
< /&的ListView GT;

我试过以下code,但它似乎不工作...

 绑定B =新的Binding();
b.Path =新的PropertyPath(taskItems);的DependencyProperty DP = DependencyProperty.Register(的ItemsSource的typeof(对象)的typeof(对象),NULL);
BindingOperations.SetBinding(taskItemListView,DP,B);

修改

基于@ sa_ddam213的回答

,这个工作:

 绑定dataContextBinding =新的Binding();
dataContextBinding.Path =新的PropertyPath(的SelectedItem);
dataContextBinding.Source = itemListView;
BindingOperations.SetBinding(taskItemListView,ListView.DataContextProperty,dataContextBinding);结合sourceBinding =新的Binding();
sourceBinding.Path =新的PropertyPath(taskItems);
BindingOperations.SetBinding(taskItemListView,ListView.ItemsSourceProperty,sourceBinding);


解决方案

这样的财产以后应该工作:

  BindingOperations.SetBinding(taskItemListView,ListView.DataContextProperty,新的绑定(的SelectedItem){源= itemListView});
BindingOperations.SetBinding(taskItemListView,ListView.ItemsSourceProperty,新的绑定(taskItems){源=此});

请注意:源=这个这个等于持有该类别的 taskItems 的SelectedItem

What is the equivalent of this in c# code?

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

I've tried the following code, but it doesn't seem to 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's 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 );

解决方案

Somthing 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 equals the class that is holding the taskItems, SelectedItem

这篇关于绑定的ItemsSource编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆