Как обновить привязанный к данным TreeView? - PullRequest
0 голосов
/ 23 марта 2011

У меня есть два TreeView в TabControl, привязанных к xmlDataProvider.Если я добавлю узлы в свой XML и сохраню его:

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

Обновится только TreeView, которого нет в открытой вкладке.Оба TreeView выглядят так:

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

1 Ответ

0 голосов
/ 23 марта 2011

Если ваш ItemsSource связан со свойством, реализующим OnPropertyChanged, вы можете добавить атрибут "UpdateSourceTrigger = PropertyChanges" к вашей привязке в XAML. Следовательно, элемент управления будет обновляться каждый раз, когда OnPropertyChanged вызывается

EDIT

Я предполагаю, что ваша ViewModel уже реализует OnPropertyChanged Поэтому все, что вам нужно сделать, это когда вы объявляете свою собственность:

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

Инициализируйте XmlDataProvider в своем конструкторе, а затем при каждом изменении объекта он будет вызывать метод OnPropertyChanged для указанного вами свойства (здесь «XmlDataProvider»), и каждый раз, когда вызывается OnPropertyChanged, ваше представление привязывается к этот объект обновится автоматически:)

...