2010-03-17 144 views
1

是否有更简单的方法来获取组合框(WinForms)选定的项目文本?组合框/列表框选定项目

string result = comboBox1.Items[comboBox1.Selectedindex]; 

而在WPF的ComboBox中?

回答

2

什么

string result = (string)comboBox1.SelectedItem 

是越来越简单吗?

+0

谢谢。我只是认为这一直没有正确写出来 – 2010-03-17 07:18:57

1

不行。而已。

只是为了兴趣,它的什么部分对你来说并不简单?

+0

事情是这样的: 字符串结果= comboBox1.SelectedText; 但它不正确 – 2010-03-17 07:17:10

+0

但这需要数据重复,这是一件坏事。也就是说,编译器必须生成代码,以便为当前字符串维护一个单独的字符串,并在“Selectedindex发生更改时将相关字符串复制到该字符串中,或​​者(更可能)使用指针来执行此操作,而不是复制串。但无论如何,该系统现在有效地负责维护单个数据的两个副本。我们都知道那可能导致... – Mawg 2010-03-18 02:09:52

1

关于WPF组合框:我不认为有一种很好的通用方式来获取WPF中所选组合框项的文本。 wpf组合框在一个模板中显示它的项目,它可以是任何东西(例如嵌套在一个堆栈面板内的一些标签,在一个按钮等内)。该模板甚至不需要显示任何文本,它可以例如显示图像或完全不同的东西。也就是说,我不认为在组合框中访问选定项目的UI内的文本字符串是非常有必要的。这只是用户的UI,程序应该与选定的对象交互(而不是UI表示)。这可能会有一些例外,但是在这种情况下,您将不得不为您使用的项目模板制定特定的解决方案,因为没有适用于此的解决方案。

2

@ Zenuka的方法工作,但我觉得下面有点“更正确”(避免蒙上如果可能):

String result = comboBox1.SelectedItem.ToString();