WPF ComboBox SelectedItem Set a Null en el interruptor TabControl
Tengo un problema simple en mi aplicación WPF que me obliga a golpearme la cabeza contra la mesa. Tengo un TabControl, donde cada TabItem es una Vista generada para un ViewModel usando un DataTemplate similar a este:
<DataTemplate DataType="{x:Type vm:FooViewModel}">
<vw:FooView/>
</DataTemplate>
FooView contiene un cuadro combinado:
<ComboBox ItemsSource="{Binding Path=BarList}" DisplayMemberPath="Name" SelectedItem="{Binding Path=SelectedBar}"/>
y FooViewModel contiene una propiedad simple:public Bar SelectedBar { get; set; }
. Mi problema es que cuando configuro el valor de mi ComboBox, cambio a otra pestaña, luego vuelvo a cambiar, el ComboBox está vacío nuevamente. Si establezco un punto de interrupción en el setter para mi propiedad, veo que la propiedad está asignada anull
cuando cambio a otra pestaña.
Por lo que entiendo, cuando se cambia una pestaña, se elimina de VisualTree, pero ¿por qué está configurando la propiedad de mi ViewModel?null
? Esto hace que sea muy difícil para mí mantener un estado persistente y verificarvalue != null
No parece ser la solución correcta. ¿Alguien puede arrojar algo así sobre esta situación?
Editar: la pila de llamadas en el punto de interrupción del setter solo muestra [Código externo], no hay pistas allí.