小编bsg*_*bsg的帖子

WPF ComboBox SelectedItem在TabControl Switch上设置为Null

我的WPF应用程序中遇到了一个简单的问题,让我在桌面上敲打我的脑袋.我有一个TabControl,其中每个TabItem都是使用类似于此的DataTemplate为ViewModel生成的视图:

<DataTemplate DataType="{x:Type vm:FooViewModel}">
    <vw:FooView/>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

FooView包含一个ComboBox:

<ComboBox ItemsSource="{Binding Path=BarList}" DisplayMemberPath="Name" SelectedItem="{Binding Path=SelectedBar}"/>
Run Code Online (Sandbox Code Playgroud)

和FooViewModel包含一个简单的属性:public Bar SelectedBar { get; set; }.我的问题是,当我为我的ComboBox设置值时,更改为另一个选项卡,然后更改回来,ComboBox再次为空.如果我在我的属性的setter上设置断点,我看到null当我切换到另一个选项卡时该属性被分配给.

根据我的理解,当切换选项卡时,它将从VisualTree中删除 - 但为什么要将我的ViewModel属性设置为null?这使得我很难保持持久状态,并且检查value != null似乎不是正确的解决方案.任何人都可以在这种情况下摆脱一些吗?

编辑:设置器断点处的调用堆栈仅显示[外部代码] - 没有提示.

wpf xaml binding

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

binding ×1

wpf ×1

xaml ×1