6

假设我有一个将UserControlDataContext设置为具有XmlDataProvider属性的对象。我想在我的控件的 XAML 中绑定到这个属性,并指定一些 XPath。我试过这个:

<TreeView ItemsSource="{Binding Path=PropertyName, XPath=/items/item/*}">

在运行时,我收到异常“带有 XPath 的 BindingExpression 无法绑定到非 XML 对象”。删除Path属性并将TreeView的 DataContext 设置为XmlPropertyName直接可以正常工作。

是什么赋予了?PathXPath互斥吗?

4

1 回答 1

3

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

“删除 Path 属性并将 TreeView 的 DataContext 设置为 XmlPropertyName 直接可以正常工作。”

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

于 2009-06-30T22:24:31.723 回答