加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 以编程方式绑定ItemsSource

发布时间:2020-12-15 07:41:35 所属栏目:百科 来源:网络整理
导读:c#代码中的等价物是什么? ListView x:Name="taskItemListView" DataContext="{Binding SelectedItem,ElementName=itemListView}" ItemsSource="{Binding taskItems}".../ListView 我已经尝试了以下代码,但它似乎不起作用…… Binding b = new Binding();b.P
c#代码中的等价物是什么?
<ListView
    x:Name="taskItemListView"
    DataContext="{Binding SelectedItem,ElementName=itemListView}"
    ItemsSource="{Binding taskItems}">
...
</ListView>

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

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

DependencyProperty dp = DependencyProperty.Register("itemsSource",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,new Binding("SelectedItem") { Source = itemListView});
BindingOperations.SetBinding(taskItemListView,new Binding("taskItems") { Source = this });

注意:“Source = this”这等于持有taskItems,SelectedItem的类

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读