防止WPF组合框中的SelectedItem在编辑为文本后变为null

本文关键字:编辑 文本 null SelectedItem 组合 WPF 防止 | 更新日期: 2023-09-27 18:26:00

当我编辑文本时,我需要下面的ComboBox来保持SelectedItem,此时我一编辑文本,SelectedItem就会变成null

        <ComboBox x:Name="FilterGroups"
                  IsEditable="True"
                  DisplayMemberPath="Code"
                  Text="{Binding FilterGroupCode}"
                  ItemsSource="{Binding FilterGroups}"
                  SelectedItem="{Binding SelectedFilterGroup}"
                  Margin="10,0"/>

我的目标是检测该项目是否已被编辑,目前我不知道是哪个项目被编辑了,因为SelectedItem变成了null

null SelectedItem目前对我来说意味着"新"项目。

防止WPF组合框中的SelectedItem在编辑为文本后变为null

作为AGH的注释。

Xaml

    <ComboBox x:Name="myFilterGroups" 
              ItemsSource="{Binding FilterGroups}" 
              DisplayMemberPath="Name" 
              SelectedItem="{Binding SelectedFilterGroup}" 
              IsEditable="True" Height="20"
              LostFocus="myFilterGroups_LostFocus"
              >
    </ComboBox>

背后的代码

    private void myFilterGroups_LostFocus(object sender, RoutedEventArgs e)
    {
        var selItem = myFilterGroups.SelectedItem;
        if (selItem == null)
            // Create New Item
            ;
    }