在阅读了很多非常相似的帖子之后,我无法让它发挥作用。我的问题似乎发生在Binding中,但我不知道错误是什么。我正在使用MVVM模式,并尝试将XML文件显示到UserControl的TreeView中。
这是我的View XAML代码
public class EepromViewModel : WorkspaceViewModel
{
private System.Windows.Data.XmlDataProvider _xmlEeprom;
public System.Windows.Data.XmlDataProvider XmlEeprom
{
get { return this._xmlEeprom; }
set { this._xmlEeprom = value; OnPropertyChanged("XmlEeprom"); }
}
protected override void Start()
{
System.Windows.Data.XmlDataProvider dataProvider = new System.Windows.Data.XmlDataProvider();
dataProvider.Source = new Uri(@"E:\Projects\Irma\blah blah blah\xmlFile.xml");
dataProvider.IsInitialLoadEnabled = true;
dataProvider.IsAsynchronous = false;
dataProvider.XPath = "*";
// //Test with XmlDocument directly faild too
// XmlDocument xmlDoc = new XmlDocument();
// xmlDoc .LoadXml(
// @"<root>
// <child1>text1</child1>
// <child2>text2</child2>
// </root>");
// dataProvider.Document = xmlDoc ;
this.XmlEeprom = dataProvider;
}
}
ViewModel类
{{1}}
当我跟踪代码时,DataProvider已加载良好,文档存在。为什么它不会显示在treeView中?
答案 0 :(得分:0)
我找到了解决方案(偶然!)。
我只是从
更改绑定<TreeView Margin="10,50,10,10"
ItemsSource="{Binding XmlEeprom}"
ItemTemplate= "{StaticResource NodeTemplate}"/>
到
<TreeView Margin="10,50,10,10"
ItemsSource="{Binding XmlEeprom.Document}"
ItemTemplate= "{StaticResource NodeTemplate}"/>
现在它的作品就像一个魅力!