2009-06-30 16 views
6

Załóżmy, że mam UserControl, którego DataContext jest ustawiony na obiekt, który ma właściwość XmlDataProvider. Chciałbym powiązać tę właściwość z XAML kontrolki i określić trochę XPath. Próbowałem to:Czy właściwości wiązania WPF ścieżka i XPath wzajemnie się wykluczają?

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

W czasie wykonywania otrzymuję wyjątek "BindingExpression z XPath nie może wiązać się z obiektem non-XML". Usunięcie właściwości Path i ustawienie DataContext TreeView bezpośrednio działa.

Co daje? Czy Path i XPath wzajemnie się wykluczają?

Odpowiedz

3

Nie wykluczają się nawzajem, jak krótko wspomniano w Data Binding Overview w sekcji Określanie ścieżki do wartości. Wyrażenie XPath zostanie wykonane przed właściwością Path, ale czasami jest pożądane, aby użyć go jako Bea Stollnitz, wyjaśniając here i here.

"Usunięcie właściwości Path i ustawienie DataContext TreeView na XmlPropertyName bezpośrednio działa poprawnie."

Skoro wspomniałem o tym, wydaje mi się spodziewasz właściwość Path należy ocenić przed wyrażenia XPath, która byłaby dlaczego otrzymujesz błąd, wyrażenie XPath jest oceniania na jakimkolwiek bieżącym kontekście jest, a ścieżka jest oceniana po tym. wyjaśnienie błędu

Powiązane problemy