【问题标题】:wpf: getting combobox valuewpf:获取组合框值
【发布时间】:2010-04-06 17:43:03
【问题描述】:

我有一个名为 cbFileSize 的 WPF 组合框。我试图得到这样的选择值:

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

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

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

【问题讨论】:

    标签: wpf combobox


    【解决方案1】:

    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 中。

    【讨论】:

    • 不应该是:string tmp = (cbFileSize.SelectedItem as ComboBoxItem).Content.ToString(); ??
    • 我编辑了我的帖子以包含我所做的假设。鉴于该假设,SelectedItem 或 SelectedValue 都可以工作。
    【解决方案2】:

    也可以简单的使用comboboxitem的Tag方法/属性

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

    然后在后面的代码中:

    GetValue=ComboBoxName.SelectedItem.Tag.ToString()
    

    获取值将是“此值”而不是 "System.Windows.Controls.ComboBoxItem: 这个值"

    【讨论】:

      猜你喜欢
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多