带有索引的 WPF 绑定集合

Posted

技术标签:

【中文标题】带有索引的 WPF 绑定集合【英文标题】:WPF Binding Collection with Index 【发布时间】:2013-05-29 23:42:32 【问题描述】:

我正在尝试使用作为另一个集合的属性的集合来绑定到列表框。以下工作正常

<ListBox ItemsSource="Binding Path=Locations[0].Buildings">

问题是我需要一个动态索引和

<ListBox ItemsSource="Binding Path=Locations[index].Buildings">

在我的视图模型中 index 是一个整数,不起作用。有谁知道我如何将我的 xaml 中的索引与我的视图模型中的属性相关联?

【问题讨论】:

【参考方案1】:

在我的视图模型中 index 是一个整数,不起作用。有谁知道我如何将我的 xaml 中的索引与我的视图模型中的属性相关联?

一个简单的选择是在 ViewModel 中公开一个CurrentLocation 属性,实际上是Location[index]。然后你可以直接绑定到它。

【讨论】:

是的,我想到了这一点,只是好奇是否有另一种方法,而不必创建另一个除了绑定之外没有其他目的的属性。很可能最终成为解决方案,谢谢!【参考方案2】:

绑定中的绑定是不可能的,所以在 XAML 中你不能绑定到“索引”。

一个。 Chris Moser's 方法,您可以创建一个绑定到“索引”的DependencyProperty 在 RegisterAttached 处理程序上指定一个更改侦听器并在那里完成您的工作。

b.使用转换器。您可以提供索引作为 ConverterParameter

c。绑定到 POCO 属性。 POCO 属性需要由 changer 发出信号的 INotifyPropertyChanged

【讨论】:

b: 无法绑定索引:***.com/questions/15309008/binding-converterparameter

以上是关于带有索引的 WPF 绑定集合的主要内容,如果未能解决你的问题,请参考以下文章

WPF绑定到集合

获取 ListBoxItem 的索引 - WPF

WPF 列表控件数据源绑定多个数据集合方法

将集合绑定到 WPF 工具包图表

WPF 列表控件数据源绑定多个数据集合方法

如何将通用项目添加到绑定到 WPF 中的集合的 ComboBox