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

时间:2009-06-30 20:43:10

标签: wpf data-binding xmldataprovider

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

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

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

是什么给出的? PathXPath互相排斥吗?

1 个答案:

答案 0 :(得分:3)

它们不是互斥的,正如指定价值路径部分下的Data Binding Overview中简要提到的那样。 XPath表达式将在Path属性之前执行,但有时可以使用Bea Stollnitz解释herehere

  

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

既然你提到了这一点,在我看来你似乎期望在XPath表达式之前评估Path属性,这就是你得到错误的原因,XPath表达式正在评估你当前的上下文是什么,以及之后正在评估路径。 错误解释