【问题标题】:How to refresh a databound TreeView?如何刷新数据绑定的 TreeView?
【发布时间】:2011-07-21 12:25:34
【问题描述】:

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

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

只有不在打开的 Tab 刷新的 TreeView。两个 TreeView 的外观如下:

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

【问题讨论】:

    标签: wpf xml treeview refresh data-binding


    【解决方案1】:

    如果您的 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,你的视图绑定到这个对象会自动刷新:)

    【讨论】:

    • 我已将该属性添加到 TreeView 但没有任何改变。如何将 OnPropertyChange 实施到我的 ItemSource?我的来源:XmlDataProvider xmlDataProvider = new XmlDataProvider();
    • 刚刚编辑了我的帖子,其中包含您应该添加的代码 sn-p,如果尚未添加 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2014-08-07
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多