WPF下ComboBox获取当前选择值

本文介绍在 WPF 中如何使用 ComboBox 控件,并详细解释了如何通过 SelectedValuePath 和 DisplayMemberPath 属性来分别设置隐藏字段和显示字段。同时提供了获取这两个字段值的方法。
WPF下给ComboBox设置绑定字段时可通过如下下设置:

combobox.SelectedValuePath = "编号";//为隐藏的一个字段
combobox.DisplayMemberPath = "名称";//为显示的字段
获得隐藏字段方式:
combobox.SelectedValue.ToString ();
获得显示的字段:
combobox.Text
<think>根据用户的问题,他需要了解在C#获取ComboBox当前选择的方法。结合引用的内容,可以从WinForms和WPF两个平台分别说明,因为不同平台的方法略有差异。 在WinForms中: 1. 如果ComboBox绑定了数据源(DataSource),使用SelectedValue属性获取绑定字段的。 2. 如果未绑定数据源,可以通过SelectedValue获取,或直接使用Text属性获取显示文本。 3. 也可通过SelectedItem获取整个选中项对象,再从中提取。 在WPF中: 1. 通常通过SelectedValue获取绑定的(需设置SelectedValuePath指定字段)。 2. 通过Text属性可直接获取当前显示的文本。 3. 若需要整个对象,使用SelectedItem。 引用中提供了代码示例,我将整理关键代码片段,并说明适用场景。注意引用[1][2][3][4]中的要点: - 引用[1]强调WinForms的SelectedValue用法 - 引用[2]补充了Items添加对象和绑定数据源的情况 - 引用[3][4]说明WPF平台的特殊绑定方式 需要区分平台给出方案,并提示常见错误(如引用[4]提到的直接赋Text的错误)。最后生成相关问题帮助用户深入理解。 </think>### 在C#获取ComboBox当前选择的方法 根据引用内容,获取ComboBox当前的方法因平台(WinForms/WPF)和数据绑定状态而异: #### **1. WinForms平台** ```csharp // 绑定数据源时获取 string value1 = comboBox1.SelectedValue?.ToString(); // 未绑定数据源时获取 string value2 = comboBox1.Text; // 直接获取显示文本 string value3 = comboBox1.SelectedItem?.ToString(); // 获取整个项对象 ``` **关键点:** - `SelectedValue` 返回**绑定字段的**(需设置`ValueMember`属性)[^1] - `Text` 始终返回**显示文本**,无论是否绑定[^1] - `SelectedItem` 返回**整个对象**(需转换为具体类型)[^2] - 绑定示例: ```csharp // 绑定数据源 var data = new List<Item> { new Item { Id = 101, Name = "选项1" }, new Item { Id = 102, Name = "选项2" } }; comboBox1.DataSource = data; comboBox1.DisplayMember = "Name"; // 显示文本字段 comboBox1.ValueMember = "Id"; // 隐藏字段 // 获取 int selectedId = (int)comboBox1.SelectedValue; ``` #### **2. WPF平台** ```csharp // 设置路径(绑定数据时) comboBox.SelectedValuePath = "Id"; // 获取 string value = comboBox.SelectedValue?.ToString(); string displayText = comboBox.Text; // 显示文本 ``` **关键点:** - 需预先设置`SelectedValuePath`指定字段[^3] - 错误做法:`order.CustomerId = cboCustomerId.Text`(应使用SelectedValue)[^4] - 正确做法:`order.CustomerId = Convert.ToString(cboCustomerId.SelectedValue)`[^4] #### **通用建议** 1. 绑定数据源时优先用`SelectedValue` 2. 未绑定数据源时用`Text`或`SelectedItem` 3. 始终添加空检查:`?.ToString()`防止NullReferenceException
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凡梦_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值