У меня есть простая проблема в моем приложении WPF, из-за которого я ударяю головой о стол. У меня есть TabControl, где каждый TabItem представляет собой представление, сгенерированное для ViewModel, с использованием DataTemplate, похожего на это:
<DataTemplate DataType="{x:Type vm:FooViewModel}">
<vw:FooView/>
</DataTemplate>
FooView содержит ComboBox:
<ComboBox ItemsSource="{Binding Path=BarList}" DisplayMemberPath="Name" SelectedItem="{Binding Path=SelectedBar}"/>
и FooViewModel содержит простое свойство: public Bar SelectedBar { get; set; }
. Моя проблема в том, что когда я устанавливаю значение для своего ComboBox, перейдите на другую вкладку, а затем измените ее обратно, ComboBox снова пуст. Если я устанавливаю точку останова на сеттер для моего свойства, я вижу, что свойство присваивается null
при переключении на другую вкладку.
Из того, что я понимаю, когда табуляция переключается, она удаляется из VisualTree - но почему она устанавливает для свойства ViewModel значение null
? Это затрудняет для меня постоянное состояние, и проверка value != null
не кажется правильным решением. Может ли кто-нибудь пролить некоторые подобные ситуации?
Изменить: стек вызовов в точке останова сеттера показывает только [Внешний код] - никаких подсказок нет.