我花了好几个小时试图弄清楚我的ComboBoxes的selectitem属性发生了什么,我很确定我现在知道导致问题的原因,但我不明白为什么会发生这种情况,如果有的话我可以做些什么。
基本上我在头文件中有一个带有组合框的DataGrid,用于过滤DataGrid项。 DataGrid位于Tabcontrol中,如果我在comboxes和switch选项卡中选择项目,则会删除所选项目。
仅当Comboboxes的ItemsSource将IsAsync属性设置为True时才会发生这种情况。否则一切都会像我想要的那样起作用。
提供有关逻辑的更多信息: 组合框从IValueConverter获取它们的值,它是所有组合框的相同转换器,我传递一个ConverterParameter来告诉它返回什么。发送到转换器的集合是datagrid中显示的项目。 激活选项卡时,将刷新这些值(每个项目都已更新选定的参数,不会清除和重新创建集合)。
这是我对其中一个组合框的xaml:
<ComboBox SelectedItem="{Binding MadeBy}" ItemsSource="{Binding IssuesView,Converter={StaticResource DataGridFilterableValueConverter}",ConverterParameter=Madeby, IsAsync=true}" SelectionChanged="FilterComboBox_SelectionChanged"/>
现在,就像我之前描述的那样,如果我将IsAsync设置为false,则选择的项目会保留。
我必须忍受这个吗?我们使用sql-databases进行了很多工作,IsAsync确实让界面变得更加流畅。我可以在组合框中没有它,但我倾向于尽可能多地使用它。
我已经看到ppl一直存在选择项的问题,而且一般解决方案似乎是在ItemsSource之前放置SelectedItem,但这没有帮助。
由于
埃里克
编辑1: 这是tabcontrol和tabitem的xaml。
<TabControl Grid.Row="1" x:Name="TabControl" SelectionChanged="TabControl_SelectionChanged">
<TabItem Header="Granskningssynpunkter" x:Name="IssueTab">
.....这里有很多代码,但没有涉及TabControl或TabItem
的内容