在WPF ComboBox中获取所选项的标记

时间:2011-06-10 16:40:07

标签: c# wpf silverlight

我有这样的组合框:

<ComboBox Name="ExpireAfterTimeComboBox" Margin="5" SelectedIndex="0">
    <ComboBoxItem Content="15 minutes" Tag="15" />
    <ComboBoxItem Content="30 minutes" Tag="30" />
    <ComboBoxItem Content="1 hour" Tag="60" />
    <ComboBoxItem Content="1 day" Tag="1440" />
</ComboBox>

如何在代码中获取标记值?

ExpireAfterTimeComboBox.SelectedItem.Tag之类的东西不起作用。

3 个答案:

答案 0 :(得分:31)

您需要将其转换为ComboBoxItem类型。

  var selectedTag = ((ComboBoxItem)ExpireAfterTimeComboBox.SelectedItem).Tag.ToString();

答案 1 :(得分:7)

如果您可以将Combobox声明修改为以下内容:

<Combobox Name="ExpireAfterTimeComboBox" Margin="5" SelectedValuePath="Tag">
    <ComboBoxItem Content="15 minutes" Tag="15" IsSelected="True" />
    <ComboBoxItem Content="30 minutes" Tag="30"  />
    <ComboBoxItem Content="1 hour" Tag="60"  />
    <ComboBoxItem Content="1 day" Tag="1440"  />
</Combobox>

你可以像这样检索标签:

var selectedTag = ExpireAfterTimeComboBox.SelectedValue;

答案 2 :(得分:1)

尝试

string str =  ((ComboBoxItem)this.ExpireAfterTimeComboBox.SelectedItem).Tag.ToString();

SelectionChanged事件处理程序或任何函数或事件处理程序中。