Связывание с XmlDataProvider не выполняется?
У меня есть некоторые проблемы с привязкой XmlDataProvider к WPF TreeView.
TreeView определяется XAML следующим образом:
<TreeView ItemsSource="{Binding Path=SelectedSystemVersionHistory}"/>
и у меня есть HierarchicalDataTemplate в родительском сеточном ресурсе TreeView для узлов в файле XML:
<HierarchicalDataTemplate DataType="Documentation" ItemsSource="{Binding XPath=*}">
<TextBlock Text="{Binding XPath=@SoftwarePackage}"/>
</HierarchiclaDataTemplate>
Моя ViewModel имеет это свойство:
public XmlDataProvider SelectedSystemVersionHistory
{
get
{
String file = GetHistoryFile(); //returns full Filepath
return new XmlDataProvider()
{
source = new Uri(file, UriKind.Absolute),
XPath= "History"
};
}
}
И Xml выглядит так:
<?xml version="1.0" standalone="yes" encoding="utf-8">
<History>
<Documentation SoftwarePackage="SoftwarePackageName">
<Entry>...</Entry>
</Documentation>
</History>
Проблема в том, что TreeView ничего не показывает, так что не так? Я работаю над этим уже несколько дней...:o(спасибо тебе за помощь.
1 ответ
Решение
К сожалению, вы не можете напрямую связать свойства Document и Source объекта XmlDataProvider, они не являются DependencyProperties. См. Также Как связать XmlDataProvider.Source со свойством MVVM
То, что вы можете сделать, это назначить DataContext Treeview XMLDataProvider:
<TreeView DataContext="{Binding SelectedSystemVersionHistory}" ItemsSource="{Binding XPath=Documentation}"/>