Как связать ItemsSource через ViewModel - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть UserControl, к которому я хочу прикрепить ViewModel, а затем привязать элементы к TreeView. У меня такая же настройка со строками для свойства Text на TextBox, которые работают нормально. Это, похоже, не имеет никакого эффекта.

DataContext устанавливается следующим образом:

MyControl.DataContext = new MyControlViewModel();

in MainWindow(). Я установил ViewModel в своем экземпляре, зарегистрировав событие DataContextChanged:

DataContextChanged += MyControl_DataContextChanged;
private void MyControl_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) {
    MyControlViewModel = (MyControlViewModel)e.NewValue;            
}

XAML имеет привязку примерно так:

<TreeView Name="TvCodeTree" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" 
              ItemsSource="{Binding TreeItems}" />

И наконец, MyControlViewModel имеет фактическую data TreeItems:

public ObservableCollection<string> TreeItems { 
    get {
        throw new NotImplementedException();
    }
    internal set {

    }
}

Я ожидаю, что ударит NotImplementedException, как только появится элемент управления, но ничего не происходит.

...