带索引的WPF绑定集合

aw0*_*w04 9 data-binding wpf xaml mvvm

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

<ListBox ItemsSource="{Binding Path=Locations[0].Buildings}">
Run Code Online (Sandbox Code Playgroud)

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

<ListBox ItemsSource="{Binding Path=Locations[index].Buildings}">
Run Code Online (Sandbox Code Playgroud)

其中index是我的viewmodel中的整数,不起作用.有谁知道如何将我的xaml中的索引与我的viewmodel中的属性相关联?

Ree*_*sey 7

其中index是我的viewmodel中的整数,不起作用.有谁知道如何将我的xaml中的索引与我的viewmodel中的属性相关联?

一个简单的选择是CurrentLocation在ViewModel中公开一个属性,这是有效的Location[index].然后你可以直接绑定它.


Ady*_*Ady 5

绑定中的绑定是不可能的,因此在 XAML 中您不能绑定到“索引”。

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

湾 使用转换器。您可以提供 index 作为 ConverterParameter

C。绑定到 POCO 属性。POCO 属性需要其 INotifyPropertyChanged 由转换器发出信号