Получить тег выбранного элемента в WPF ComboBox - PullRequest
16 голосов
/ 10 июня 2011

У меня есть такой комбинированный список:

<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 ]

31 голосов
/ 10 июня 2011

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

  var selectedTag = ((ComboBoxItem)ExpireAfterTimeComboBox.SelectedItem).Tag.ToString();
7 голосов
/ 14 октября 2013

Если бы вы могли изменить объявление 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;
1 голос
/ 10 июня 2011

Попробуйте

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...