WPF ComboBox中SectionChanged事件用法
这里写自定义目录标题一、ComboBox简介二、ComboBox属性三、SelectionChanged事件四、上述问题解决方法如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一、ComboBo
ComboBox中SectionChanged事件用法
一、ComboBox简介
ComboBox允许用户从下拉列表中选择项,或根据需要在控件的文本框中输入新文本。 ComboBox 为 ItemsControl ,这意味着它可以包含任何类型的对象的集合 (例如字符串、图像或面板) 。
二、ComboBox属性
name | Value |
---|---|
IsEditable | 获取或设置一个值,该值指示启用或禁用 ComboBox 的文本框中的文本编辑。 |
IsEnabled | 获取或设置一个值,该值指示是否 用户界面 (UI) 中启用此元素。 这是依赖项属性。(继承自 UIElement) |
SelectedIndex | 获取或设置当前选择中第一项的索引,如果选择为空,则返回负一(-1)。(继承自 Selector) |
SelectedItem | 获取或设置当前选择中的第一项,或者,如果选择为空,则返回 null。(继承自 Selector) |
SelectedValue | 获获取或设置通过使用 SelectedItem 而获取的 SelectedValuePath 的值。(继承自 Selector) |
SelectedValuePath | 获取或设置用于从 SelectedValue 获取 SelectedItem 的路径。(继承自 Selector) |
Text | 获取或设置当前选定项的文本。 |
三、SelectionChanged事件
当用户选择下拉选项中选项时,如果需要对特定选项执行一些功能,就需要用到SelectionChanged事件,用来监视用户选择。
在这个事件中可以使用SelectedValue.ToString()语句,将选项转换为字符串,获取用户选项。但如果需要同时实现可以手动编辑选项,即将IsEditable设置为true,这时程序就会报错,如下图所示。
爆出未将对象引用设置到对象的实例的错误,这是因为编辑输入的内容不在初始选项内,使用获取选项的SelectedValue为null,所以会爆错。这时可以使用Text来获取选项,但在实际使用时发现获取到的选项,是当前选项之前的一个选项,无法获取到当前选项。
四、上述问题解决方法
可以在SelectionChanged事件中,使用SelectedValue.ToString()获取当前选项,但需要在事件中开始位置判断SelectedValue是否为null,如是,则程序返回,在其他代码段使用Text获取用户输入编辑的内容。
private void MySelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (this.ComboBox.SelectedValue == null)
{
return;
}
MessageBox.Show(SelectedValue.ToString());
}
五、参考资料
微软文档ComboBox 类
Combobox SelectionChanged problem with IsEditable
ComboBox Editable Percentage
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)