gpt4 book ai didi

c# - 组合框的 SelectedValue 返回意外值

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:14 26 4
gpt4 key购买 nike

我有一个在表单加载时填充的 ComboBox。我以数据集的形式从数据库中获取数据,并使用以下内容填充组合框。

checkBox4_combo.DataSource = ds.Tables[0].DefaultView.ToTable(true,"Work_Location");
checkBox4_combo.DisplayMember = "Work_Location";
checkBox4_combo.BindingContext = this.BindingContext;

但是,当我尝试访问这个组合框的项目时,它返回了一个不需要的输出。 我尝试了以下方法:
方法一:

object ob = checkBox4_combo.Items[0];
MessageBox.Show(ob.ToString());
//Returns "System.Data.DataRowView"

方法二:

checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.SelectedItem;
//OR
object ob = checkBox4_combo.SelectedValue;
MessageBox.Show(ob.ToString());
//Returns "System.Data.DataRowView"

方法三:

checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.SelectedText;
MessageBox.Show(ob.ToString());
//Returns <blank>

但是,如果我使用:

checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.Text;
MessageBox.Show(ob.ToString());

我将获得所需的输出,但这意味着所选文本已更改。所以基本上,我不想使用这个,以及方法 2 和 3。

现在,除了寻求解决方案外,我还想了解为什么输出为空或“System.Data.DataRowView”。我将数据绑定(bind)到组合框的方式有什么问题吗?或者这是它的工作原理,我应该坚持我最后的解决方案?

最佳答案

您需要像这样将 checkBox4_combo.SelectedItem 转换为 DataRowView:

var ob = (DataRowView)checkBox4_combo.SelectedItem;
MessageBox.Show(ob[0].ToString());//Change ob[0] to each column index that you want

关于c# - 组合框的 SelectedValue 返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com