我有一个名为cbFileSize的WPF ComboBox。我试着得到这样的选择值:
string tmp = cbFileSize.SelectedValue.ToString();
MessageBox.Show(tmp);
但是tmp设置为“System.Windows.Control.ComboBoxItem:16”。
我应该使用哪个函数来获取值“16”?
答案 0 :(得分:4)
string tmp =(cbFileSize.SelectedValue as ComboBoxItem).Content.ToString();
或
string tmp =(cbFileSize.SelectedItem as ComboBoxItem).Content.ToString();
编辑(更多信息): 如果稍后将组合框值列表绑定到字符串集合,则可以按照自己的方式执行此操作。但是,您在ComboBox中放置了一个ComboBoxItems集合,因此selectedItem或selectedValue将是一个ComboBox项:
<ComboBox x:Name="comboBox">
<ComboBoxItem>15</ComboBoxItem>
<ComboBoxItem>16</ComboBoxItem>
<ComboBoxItem>17</ComboBoxItem>
</ComboBox>
我假设你正在做类似上面的事情。由于您获得了一个ComboBoxItem作为您选择的项目,您只需要转换它然后获取内容(这是您的数值)。
同样,建议的解决方案适用于上述设置,但是,将来您可能会将您的值绑定到您想要的类型(字符串或整数),以便手动将ComboBox项目放在ComboBox中。
答案 1 :(得分:0)
也可以简单地使用组合框的标签方法/属性
<ComboBoxItem Content="This Value" Tag="This Value"/>
然后在代码背后:
GetValue=ComboBoxName.SelectedItem.Tag.ToString()
获得价值将是&#34;这个价值&#34;代替 &#34; System.Windows.Controls.ComboBoxItem:此值&#34;