Я пытаюсь связать TextBlock с элементом документа XML, он работает нормально, если источником является StaticResouce, но я не могу понять синтаксис для привязки к тому же документу XML, когдавыставляется через ViewModel.
Вот документ XML:
<Books>
<Book ID="1" Name="ABC" />
<Book ID="2" Name="DEF" />
<Book ID="3" Name="XYZ" />
</Books>
Привязка к StaticResource = SUCCESSFUL
Файл ресурсов содержит XmlDataProvider со ссылкой на Books.xml:
<XmlDataProvider x:Key="data" Source="Books.xml"/>
А вот как я привязываюсь к файлу xml.
<TextBlock Text="{Binding Source={StaticResource data},XPath=/Books/Book/@Name}"/>
<XmlDataProvider x:Key="data" Source="../Views/Data.xml" />
Как я уже говорил, привязка выше работает нормально и отображает «ABC».Однако этот XmlDocument должен исходить от SQL Server и показываться через ViewModel (шаблон MVVM).
Привязка к ViewModel = FAILED
Свойство Books из ViewModel заполняется точно таким же XML (см. Выше):
public XmlDocument Books { get; set; }
И вот синтаксис, который я использую для привязки к ViewModel:
<TextBlock Text="{Binding Books,XPath=/Books/Book/@Name}" />
Он ничего не возвращает, и я получаю следующее сообщение об ошибке:
BindingExpression withXPath не может привязываться к объекту, отличному от XML.
Любая помощь приветствуется.