从组合框获取.value属性

时间:2012-10-22 18:01:36

标签: c# wpf combobox

我使用了以下代码......

ComboboxItem item = new ComboboxItem();
item.Value = "M232M2333";
item.Text = "Apples";
comboSpriteSelect.Items.Add(item);

这是一个例子,但实际上我正在从文本文件中读取数百个这些值并将它们应用到组合框中。

当我使用.Value时,我似乎无法获得.SelectedValue属性,但是当我调试时,我看到该值已分配给组合框。

lbl1.Text = comboSpriteSelect.SelectedValue.ToString();

有人能提供解决方案吗?是因为我没有绑定数据吗?

4 个答案:

答案 0 :(得分:4)

因为你有ComboboxItem object in combo items。从SelectedItem获取ComboboxItem,并通过将SelectedItem强制转换回ComboboxItem来获取ComboboxItem类的值。

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value;

如果Value is not string,则可能需要调用ToString()

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value.ToString();

答案 1 :(得分:3)

这是因为你没有数据绑定。 MSDN Doc表示SelectedValueSelectedValuePath属性确定,该属性尚未在您的示例中设置。

使用

lbl1.Text = ((ComboboxItem)comboSpriteSelect.SelectedItem).Value;

代替。

答案 2 :(得分:1)

lbl1.Text = comboSpriteSelect.SelectedItem.ToString();而不是SelectedValue

答案 3 :(得分:0)

覆盖ToString班级中的ComboboxItem

public override string ToString()
{
   return Value;
}

然后调用comboSpriteSelect.SelectedItem.ToString();将返回项目的值;