WPF 学习笔记-ComboBox控件

一、事件处理

1.常用事件出发时的文本状态

        private void ComboBox_GotFocus(object sender, RoutedEventArgs e)
        {
            txt.Text += "GetFocus " + e.Source + " \n";
            txt.Text += "  Text         : " +cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void ComboBox_Initialized(object sender, EventArgs e)
        {
            txt.Text += "Initialized" + e.ToString() + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void ComboBox_Loaded(object sender, RoutedEventArgs e)
        {
            txt.Text += "Loaded" + e.ToString() + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_Drop(object sender, DragEventArgs e)
        {
            txt.Text += "Drop Data      : " + e.Data + "\n";
            txt.Text += "Drop ToString  : " + e.ToString() + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_DropDownClosed(object sender, EventArgs e)
        {
            txt.Text += "DropDownClosed ToString : " + e.ToString() + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_DropDownOpened(object sender, EventArgs e)
        {
            txt.Text += "DropDownOpened ToString : " + e.ToString() + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_FocusableChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            txt.Text += "FocusableChanged ToString : " + e.ToString() + "\n";
            txt.Text += "FocusableChanged NewValue : " + e.NewValue + "\n";
            txt.Text += "FocusableChanged OldValue : " + e.OldValue + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_LostFocus(object sender, RoutedEventArgs e)
        {
            txt.Text += "LostFocus ToString : " + e.ToString() + "\n";
            txt.Text += "LostFocus Handled  : " + e.Handled + "\n";
            txt.Text += "LostFocus Source   : " + e.Source + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            txt.Text += "MouseDoubleClick ToString : " + e.ToString() + "\n";
            txt.Text += "MouseDoubleClick Handled  : " + e.Handled + "\n";
            txt.Text += "MouseDoubleClick Source   : " + e.Source + "\n";
            txt.Text += "MouseDoubleClick GetPosition   : " + e.GetPosition(this).ToString() + "\n";
            txt.Text += "MouseDoubleClick ChangedButton : " + e.ChangedButton + "\n";
            txt.Text += "MouseDoubleClick ClickCount    : " + e.ClickCount + "\n";
            txt.Text += "MouseDoubleClick ButtonState   : " + e.ButtonState + "\n";
            txt.Text += "MouseDoubleClick LeftButton    : " + e.LeftButton + "\n";
            txt.Text += "MouseDoubleClick MiddleButton  : " + e.MiddleButton + "\n";
            txt.Text += "MouseDoubleClick MouseDevice   : " + e.MouseDevice + "\n";
            txt.Text += "MouseDoubleClick RightButton   : " + e.RightButton + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            txt.Text += "SelectionChanged ToString : " + e.ToString() + "\n";
            txt.Text += "SelectionChanged Handled  : " + e.Handled + "\n";
            txt.Text += "SelectionChanged Source   : " + e.Source + "\n";
            txt.Text += "SelectionChanged AddedItems    : " + e.AddedItems + "\n";
            txt.Text += "SelectionChanged RemovedItems  : " + e.RemovedItems + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

        private void cmb_TextInput(object sender, TextCompositionEventArgs e)
        {
            txt.Text += "TextInput ToString : " + e.ToString() + "\n";
            txt.Text += "TextInput Handled  : " + e.Handled + "\n";
            txt.Text += "TextInput Source   : " + e.Source + "\n";
            txt.Text += "TextInput SystemText       : " + e.SystemText + "\n";
            txt.Text += "TextInput ControlText      : " + e.ControlText + "\n";
            txt.Text += "TextInput TextComposition  : " + e.TextComposition + "\n";
            txt.Text += "TextInput Timestamp        : " + e.Timestamp + "\n";
            txt.Text += "TextInput Device           : " + e.Device + "\n";
            txt.Text += "  Text         : " + cmb.Text + " \n";
            txt.Text += "  SelectedItem : " + cmb.SelectedItem + " \n";
            txt.Text += "  SelectedIndex: " + cmb.SelectedIndex + " \n";
        }

运行结果

InitializedSystem.EventArgs
  Text         : 默认选项 
  SelectedItem :  
  SelectedIndex: -1 
LoadedSystem.Windows.RoutedEventArgs
  Text         : 默认选项 
  SelectedItem :  
  SelectedIndex: -1 
LostFocus ToString : System.Windows.RoutedEventArgs
LostFocus Handled  : False
LostFocus Source   : System.Windows.Controls.ComboBox Items.Count:3
  Text         : 默认选项 
  SelectedItem :  
  SelectedIndex: -1 
GetFocus System.Windows.Controls.ComboBox Items.Count:3 
  Text         : 默认选项 
  SelectedItem :  
  SelectedIndex: -1 
LostFocus ToString : System.Windows.RoutedEventArgs
LostFocus Handled  : False
LostFocus Source   : System.Windows.Controls.ComboBox Items.Count:3
  Text         : 11212312312 
  SelectedItem :  
  SelectedIndex: -1 
LostFocus ToString : System.Windows.RoutedEventArgs
LostFocus Handled  : False
LostFocus Source   : System.Windows.Controls.ComboBox Items.Count:3
  Text         : 11212312312 
  SelectedItem :  
  SelectedIndex: -1 
GetFocus System.Windows.Controls.ComboBox Items.Count:3 
  Text         : 11212312312 
  SelectedItem :  
  SelectedIndex: -1 
DropDownOpened ToString : System.EventArgs
  Text         : 11212312312 
  SelectedItem :  
  SelectedIndex: -1 
SelectionChanged ToString : System.Windows.Controls.SelectionChangedEventArgs
SelectionChanged Handled  : False
SelectionChanged Source   : System.Windows.Controls.ComboBox Items.Count:3
SelectionChanged AddedItems    : System.Object[]
SelectionChanged RemovedItems  : System.Object[]
  Text         : 11212312312 
  SelectedItem : System.Windows.Controls.ComboBoxItem: 选项2 
  SelectedIndex: 1 
DropDownClosed ToString : System.EventArgs
  Text         : 选项2 
  SelectedItem : System.Windows.Controls.ComboBoxItem: 选项2 
  SelectedIndex: 1 
LostFocus ToString : System.Windows.RoutedEventArgs
LostFocus Handled  : False
LostFocus Source   : System.Windows.Controls.ComboBox Items.Count:3
  Text         : 选项2 
  SelectedItem : System.Windows.Controls.ComboBoxItem: 选项2 
  SelectedIndex: 1 

实际使用时,Input在输入文字时并没有触发。

二、数据绑定问题

1.绑定数据源

            cmb_ImportData_TestStatus.ItemsSource = TypeListSource.GetImportDataTestStatus();
            cmb_ImportData_TestStatus.DisplayMemberPath = "Name";
            cmb_ImportData_TestStatus.SelectedValuePath = "ID";

绑定对应的数据源,同时设置显示的字段和选中值得字段

2.SelectedValue值得范围

  • 实际操作过程中,如果选中得项目为绑定数据列表中得值时,则显示为选中得值对应参数信息。

  • 若输入的值为非数据源列表中得值时返回为null值。

  • 如数据源为: 1:小李,2:小明
    选中值为:小明
    则SelectedValue的值为:2
    若输入框的值为空值“”或者未在数据源中的值“其他”时
    则SelectedValue的值为:null

    注意:如果先选择了数据源的值,比如“小李”,然后从后面删除,把李字删除了,“小“保留时:
    则SelectedValue的值依然为:1

三、日常使用

1.自动填充/智能感知补充数据

//自动补充数据
IsTextSearchEnabled = true;
//区分大小写
IsTextSearchCaseSensitive = true;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼听禅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值