一、事件处理
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;