Я использую MVVM-Light.В моем XAML у меня есть следующая привязка в TreeView.
<TreeView Grid.Row="1"
ItemsSource="{Binding Model.Root.ChildPages, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"
Свойство Model в VM выглядит следующим образом.
public TreeModel Model
{
get { return model_; }
set
{
Set(nameof(Model), ref model_, value);
}
}
TreeModel и TreeModel.Root являются ObservableObjects.TreeModel.Root.ChildPages - это ObservableCollection.
(Я на самом деле не изменяю привязанные в данный момент объекты, но я установил совершенно новую модель, чтобы фактически использовать наблюдаемые объекты, поскольку моя модель не должна иметь никакого значения, ноЯ думал, что стоит упомянуть)
При настройке моего свойства Model мой TreeView не обновляет / не показывает новую TreeModel.Насколько мне известно, функция Set () из MVVM Light должна вызывать RaisePropertyChanged () внутренне.
ViewModel, к которому привязывается View, получен из класса MyViewModelBase, производного от класса ViewModelBase MVVM Light.Свойство Model определено в классе MyViewModelBase.
Чего мне не хватает, почему представление не обновляется?Как ее решить?
При настройке свойства Model из конструктора ViewModels оно будет отображаться, как и ожидалось TreeView, это только последовательные вызовы извне элемента управления для свойства Model, которые не влияют на TreeView,Я отладил и подтвердил, что строка в установщике действительно вызывается
Set(nameof(Model), ref model_, value);
.