C# 获取WPF组合框中所选项目的标记
我有这样的组合框:C# 获取WPF组合框中所选项目的标记,c#,wpf,silverlight,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" /&
<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的内容不起作用。您需要将其转换为ComboBoxItem
类型
var selectedTag = ((ComboBoxItem)ExpireAfterTimeComboBox.SelectedItem).Tag.ToString();
试一试
在SelectionChanged
事件处理程序中,或在任何函数或事件处理程序中。如果可以将组合框声明修改为以下内容:
<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>
不是为了学究或其他什么,但是如果调用Object.ToString()方法,为什么不将selectedTag声明为字符串呢?@djdanlib-没有特别的原因。当我开始键入答案时,我使用了var
,然后在记住Tag
返回的是一个对象,而不是字符串之后,在末尾将ToString
。
<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;