我有一个包含ValueMember = ID
和DisplayMember = Name
的组合框。我需要与该名称相关联的值,因此我执行以下操作:
if (cboTypeOfMaterial.SelectedIndex != -1)
{
string temp = cboTypeOfMaterial.SelectedValue.ToString();
//More code here...
}
将ID
值作为字符串返回。例如 - “7”。
如果我尝试:
if (cboTypeOfMaterial.SelectedIndex != -1)
{
string temp = cboTypeOfMaterial.DisplayMember.ToString();
//More code here...
}
我得到字符串Name
这是关键。
我需要的是获取所选元素Name
答案 0 :(得分:4)
尝试通过SelectedItem
访问该元素,这将为您提供与该条目相关联的整个对象,然后您可以访问所需的属性ID
。
答案 1 :(得分:4)
SelectedValue
将返回ValueMember
中定义的属性的值,SelectedItem
将返回所选的整个对象,如果您想获得除{{1}之外的其他值您必须在SelectedValue
中投射对象,然后才能访问ComboBox
媒体资源。
Name
答案 2 :(得分:1)
您可以做的是为comboBox中的条目创建自定义类。这看起来像:
public class ComboBoxItem
{
public string Display { get; set; }
public int Id { get; set; }
public override string ToString()
{
return this.Display;
}
}
然后,您可以通过以下代码获取所选的ComboBoxItem:
ComboBoxItem cbi = (ComboBoxItem)cboTypeOfMaterial.SelectedValue;
if(cbi != null)
// Access the Property you need
答案 3 :(得分:1)
我知道这是一个老问题,但我很惊讶没有人提到过:
.classname:hover{
-webkit-filter: drop-shadow(1px 1px 0 yellow)
drop-shadow(-1px -1px 0 yellow);
filter: drop-shadow(1px 1px 0 yellow)
drop-shadow(-1px -1px 0 yellow);
}
返回所选项目的文本表示(即ComboBox1.GetItemText(ComboBox1.SelectedItem)
),在涉及数据绑定DisplayMember
或任何ComboBox
的情况下非常有用。
答案 4 :(得分:0)
string temp = cboTypeOfMaterial.ValueMember.ToString();
答案 5 :(得分:-2)
我认为您也可以使用Text属性,但这不是一个很好的解决方案。更好的解决方案是@dutzu的建议。
string temp = cboTypeOfMaterial.Text;