2010-04-06 99 views
3

我有一个名为cbFileSize的WPF组合框。我尽量选择价值,像这样得到:wpf:获取组合框值

string tmp = cbFileSize.SelectedValue.ToString(); 
MessageBox.Show(tmp); 

但tmp目录被设置为“System.Windows.Control.ComboBoxItem:16”。

我应该使用哪个函数来得到值“16”?

回答

4

string tmp =(cbFileSize.SelectedValue as ComboBoxItem).Content.ToString();

串TMP =(cbFileSize.SelectedItem如ComboBoxItem).Content.ToString();

编辑(了解更多信息): 如果您稍后将组合框值的列表绑定到字符串集合,则可以按照您的方式进行操作。但是,您将ComboBoxItems集合在你的组合框,让你的SelectedItem或了selectedValue将是一个组合框项目:

<ComboBox x:Name="comboBox"> 
    <ComboBoxItem>15</ComboBoxItem> 
    <ComboBoxItem>16</ComboBoxItem> 
    <ComboBoxItem>17</ComboBoxItem> 
</ComboBox> 

我假设你正在做的事情就像上面。既然你得到了一个ComboBoxItem作为你选择的项目,你只需要将它转换并获取内容(这是你的数值)。

同样,建议的解决方案将适用于上述设置,但是,将来您可能会将您的值绑定到您想要的类型(字符串或整数),并将ComboBox项目手动放置在ComboBox中。

+0

should not it:string tmp =(cbFileSize.SelectedItem as ComboBoxItem).Content.ToString(); ?? – spong 2010-04-06 17:59:00

+0

我编辑我的帖子,包括我正在做的假设。根据这个假设,SelectedItem或者SelectedValue都可以工作。 – Scott 2010-04-06 18:00:49

0

也可以简单地在代码中使用comboboxitem

<ComboBoxItem Content="This Value" Tag="This Value"/> 

的标记方法/属性然后背后:

GetValue=ComboBoxName.SelectedItem.Tag.ToString() 

获得值将是 “此值”,而不是 “System.Windows .Controls.ComboBoxItem:This Value“