WPF绑定属性Path和XPath是否互斥?

M. *_*ley 6 data-binding wpf xmldataprovider

假设我有一个UserControl,其DataContext被设置到具有对象XmlDataProvider属性.我想在我的控件的XAML中绑定到这个属性,并指定一些XPath.我试过这个:

<TreeView ItemsSource="{Binding Path=PropertyName, XPath=/items/item/*}">
Run Code Online (Sandbox Code Playgroud)

在运行时,我得到异常"BindingExpression with XPath无法绑定到非XML对象".删除Path属性并将TreeView'DataContext设置为XmlPropertyName直接工作正常.

是什么赋予了?是PathXPath相互排斥?

rmo*_*ore 4

正如“指定值的路径”部分下的“数据绑定概述”中简要提到的,它们并不相互排斥。XPath 表达式将在 Path 属性之前执行,但有时需要使用 Bea Stollnitz在这里这里解释的那样。

“删除 Path 属性并将 TreeView 的 DataContext 直接设置为 XmlPropertyName 效果很好。”

既然您提到了这一点,在我看来,您似乎希望在 XPath 表达式之前对 Path 属性进行求值,这就是您收到错误的原因,XPath 表达式正在对您当前的上下文进行求值,并且路径是之后进行评估。错误解释