2

我使用了以下代码...

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

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

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

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

任何人都可以提供解决方案吗?是因为我没有绑定数据吗?

4

4 回答 4

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();
于 2012-10-22T18:05:15.670 回答
3

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

利用

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

反而。

于 2012-10-22T18:06:35.453 回答
1

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

于 2012-10-22T18:08:21.880 回答
0

ToString在您的ComboboxItem班级中覆盖

public override string ToString()
{
   return Value;
}

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

于 2012-10-22T18:18:13.177 回答