wpf 集合子属性数据绑定路径

wpf collections subproperty data binding path

我正在尝试实现与下面所示的 xpath 函数等效但具有 wpf 绑定路径的东西。本质上,我需要仅使用人员的 ID 作为过滤器来获取集合列表中人员的姓名。我不太确定如何为此正确构建 wpf 路径。

我浏览了一些 msdn 帖子,尤其是这个:binding_to_collections,但据我所知,它只描述了基于索引的过滤。

//XPath that works with xmls
string xpath = "//People[ID='123456']/Name";

//My attempts at wpf path bindings
var binding = new Binding($"People[ID='123456'].Name");
var binding = new Binding($"People[ID='{personID}'].Name");
var binding = new Binding($"People[0].Name");//works but doesn't show correct person

恐怕 WPF 或 XAML 中的 属性 绑定路径不支持 ID='123456'。索引和 compile-time 常量是唯一的选择。

例如,如果 PeopleDictionary<int, Person>,您可以根据 constant 键绑定到特定的 Person123456) 像这样:

People[123456].Name

但是您不能使用绑定路径基于 属性 进行过滤。这是不支持的。