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 常量是唯一的选择。
例如,如果 People
是 Dictionary<int, Person>
,您可以根据 constant 键绑定到特定的 Person
(123456
) 像这样:
People[123456].Name
但是您不能使用绑定路径基于 属性 进行过滤。这是不支持的。
我正在尝试实现与下面所示的 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 常量是唯一的选择。
例如,如果 People
是 Dictionary<int, Person>
,您可以根据 constant 键绑定到特定的 Person
(123456
) 像这样:
People[123456].Name
但是您不能使用绑定路径基于 属性 进行过滤。这是不支持的。