Я ходил кругами с этим в течение нескольких дней, и я надеюсь, что гуру WPF может увидеть, где я иду не так.
Я устанавливаю CurrentViewModel в коде. Выбранный элемент моего ListBox и содержимое моего ContentControl связываются правильно Но при изменении выбранного элемента в списке через интерфейс пользователя CurrentViewModel устанавливается, но элемент управления контентом не обновляется.
Я использую шаблон данных для сопоставления моих видов и моделей видов.
<DataTemplate DataType="{x:Type ViewModel:MyViewModel}">
<View:MyView />
</DataTemplate>
У меня есть ListBox, который привязан к наблюдаемой коллекции ViewModels. Выбранный элемент привязан к текущей модели представления.
<ListBox ItemsSource="{Binding MyViewModelCollection}" DisplayMemberPath="DisplayName" SelectedItem="{Binding CurrentViewModel, Mode=TwoWay}"/>
У меня также есть элемент управления контентом, который также привязан к модели CurrentView
<ContentControl Content="{Binding CurrentViewModel, Mode=TwoWay}"/>
Это свойство, с которым они оба связаны
public MyViewModel CurrentViewModel
{
get
{
return _currentViewModel;
}
set
{
if (_currentViewModel== value) return;
_currentViewModel= value;
OnPropertyChanged("CurrentViewModel");
}
}
Я отредактировал имена для ясности и удалил информацию о форматировании.
Любая помощь с благодарностью.
Приветствия
Даниил
РЕДАКТИРОВАТЬ: наткнулся на ссылку Как отладить привязки WPF? . Я установил точку останова для привязки содержимого, и она действительно вызывается только один раз, когда привязка устанавливается впервые.