WPF ComboBox SelectedItem auf Null Gesetzt auf TabControl-Schalter

Ich habe ein einfaches problem, in meiner WPF-Anwendung, die hat mich schlug meinen Kopf auf den Tisch. Ich habe ein TabControl, wo jedes TabItem ist eine Ansicht generiert, die für ein ViewModel mit einem DataTemplate ähnlich wie diese:

<DataTemplate DataType="{x:Type vm:FooViewModel}">
    <vw:FooView/>
</DataTemplate>

FooView enthält eine ComboBox:

<ComboBox ItemsSource="{Binding Path=BarList}" DisplayMemberPath="Name" SelectedItem="{Binding Path=SelectedBar}"/>

und FooViewModel enthält eine einfache Eigenschaft: public Bar SelectedBar { get; set; }. Mein problem ist, dass wenn ich den Wert für meine ComboBox, wechseln Sie zu einer anderen Registerkarte wechseln Sie dann zurück, die ComboBox wieder leer. Wenn ich einen Haltepunkt auf die setter für mein Eigentum, sehe ich, dass die Eigenschaft zugeordnet ist null wenn ich auf einen anderen Reiter wechseln.

Aus, was ich verstehe, wenn ein tab ausgeschaltet ist, wird es entfernt von der VisualTree - aber warum ist es meine Einstellung ViewModel-Eigenschaft auf null? Das macht es für mich sehr schwer zu halten persistenten Zustand, und überprüfen value != null scheint nicht wie die richtige Lösung. Kann jemand verschüttet etwas wie auf diese situation?

Edit: Den call-stack auf die setter-Haltepunkt zeigt nur [Externer Code] - keine Hinweise gibt.

InformationsquelleAutor der Frage bsg | 2010-08-10

Schreibe einen Kommentar