2009-06-30 4 views
6

UserControlDataContextXmlDataProvider 속성을 가진 개체로 설정된 것으로 가정합니다. 내 컨트롤의 XAML에서이 속성에 바인딩하고 일부 XPath를 지정하고 싶습니다. 나는 이것을 시도했다 :WPF 바인딩 속성 경로와 XPath는 상호 배타적입니까?

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

런타임시 "XPath를 사용하는 BindingExpression은 비 XML 객체에 바인딩 할 수 없다"는 예외가 발생합니다. Path 속성을 제거하고 TreeView의 DataContext를 XmlPropertyName으로 설정하면 올바르게 작동합니다.

무엇을 제공합니까? PathXPath은 상호 배타적입니까?

답변

3

Data Binding Overview에서 간단히 언급 한 것처럼 섹션 아래에 명시된 것처럼 상호 배타적 인 것은 아닙니다. XPath 표현식은 Path 속성 전에 실행되지만 Bea Stollnitz가 herehere을 설명하는대로 사용하는 것이 때때로 바람직합니다.

"Path 속성을 제거하고 TreeView의 DataContext를 XmlPropertyName으로 설정하면 올바르게 작동합니다." 당신은 당신이 오류가 발생하는 이유가 될 것이다 XPath 식, 전에 평가 될 Path 속성을 기대처럼

이 언급하기 때문에, 그것은 나에게 보인다 XPath 표현식은 어떤 현재의 상황에 대한 평가입니다 그 다음에 경로가 평가되고 있습니다. 오류 설명