如何刷新数据绑定TreeView?

时间:2011-03-23 17:21:23

标签: wpf xml treeview refresh data-binding

我在TabControl中有两个TreeView,数据绑定到xmlDataProvider。如果我将节点添加到我的Xml并保存它:

xmlDataProvider.Document.Save(fullPathToXml);
xmlDataProvider.Refresh();

只有不在打开Tab中的TreeView刷新。两个TreeView都是这样的:

<TreeView Name="DIFFERENT_NAMES" ItemsSource="{Binding Source={StaticResource dataxml}, XPath=./*}"/>

1 个答案:

答案 0 :(得分:0)

如果您的ItemsSource绑定到实现OnPropertyChanged的属性,则可以将属性“UpdateSourceTrigger = PropertyChanges”添加到XAML中的绑定。 因此,每次调用OnPropertyChanged时控件都会自动更新

修改

我假设你的ViewModel已经实现了OnPropertyChanged 因此,当您申报财产时,您所要做的就是:

private XmlDataProvider _xmlDataProvider;
public XmlDataProvider XmlDataProvider
        {
            get { return xmlDataProvider; }
            set 
            { 
                xmlDataProvider = value;
                OnPropertyChanged("XmlDataProvider");
            }
        }

在构造函数中初始化XmlDataProvider,然后,每次修改对象时,它将在您指定的属性(此处为“XmlDataProvider”)上调用方法OnPropertyChanged,并且每次调用OnPropertyChanged时,您的视图都绑定到此对象将自动刷新:)