Получить тег выбранного элемента в WPF ComboBox

У меня есть combobox:

<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 не работает.

Ответы

Ответ 1

Вам нужно передать его в тип ComboBoxItem.

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

Ответ 2

Если вы можете изменить объявление 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;

Ответ 3

Try

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

в SelectionChanged обработчике событий или в любой функции или обработчике событий.