我有这样的组合框:
<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
之类的东西不起作用。
答案 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
事件处理程序或任何函数或事件处理程序中。