【问题标题】:Prevent SelectedItem in WPF ComboBox becoming null after edit to text防止 WPF ComboBox 中的 SelectedItem 在编辑文本后变为空
【发布时间】:2016-03-11 21:14:31
【问题描述】:

当我编辑文本时,我需要下面的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

目前,nullSelectedItem 对我来说意味着“新”项目。

【问题讨论】:

  • 您是否尝试过设置 UpdateSourceTrigger 属性?
  • @AGH 不,我还没有。您能否详细说明如何使用它来实现我的目标?
  • 这只是一个假设,但是一旦您编辑组合框的文本,SelectedItem 就会变为 null,因为它不是在 FilterGroups 中找到的值。设置 UpdateSourceTrigger=LostFocus 将仅在您在组合框中进行选择后更新 SelectedItem,因此不会为空。这个问题也可能有帮助:stackoverflow.com/questions/4770912/…

标签: c# wpf data-binding combobox selecteditem


【解决方案1】:

作为 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
            ;
    }

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2012-06-19
    • 2014-07-05
    • 2011-02-23
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多