对XmlDataProvider的绑定失败



我有一个XmlDataProvider绑定到WPF TreeView的一些问题。

TreeView是这样定义的:

<TreeView ItemsSource="{Binding Path=SelectedSystemVersionHistory}"/>

和我有一个HierarchicalDataTemplate在父网格资源的树视图的节点在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 (谢谢你的帮助。

不幸的是,您不能直接绑定XmlDataProvider的Document和Source属性,它们不是DependencyProperties。另请参见如何绑定XmlDataProvider。MVVM属性的源代码

你能做的就是把Treeview的DataContext赋值给XMLDataProvider:

<TreeView DataContext="{Binding SelectedSystemVersionHistory}" ItemsSource="{Binding XPath=Documentation}"/>

相关内容

  • 没有找到相关文章

最新更新