无法在组合框中获取选定的文本或值
本文关键字:文本 获取 组合 | 更新日期: 2023-09-27 18:22:18
我的wpf应用程序中有一个包含三项的组合框:
<ComboBoxItem Tag="some value">Text</ComboBoxItem>
<ComboBoxItem Tag="some value2">Text2</ComboBoxItem>
<ComboBoxItem Tag="some value3">Text3</ComboBoxItem>
我想在运行时获取选定的文本或值。当我这样做时:
myComboBox.SelectedValue.ToString()
它返回这个:
System.Windows.Controls.ComboBoxItem: Text2
如何获取选定的文本或值?
因为您想要ComboBoxItem
的Content
属性,所以应该这样尝试:
(myComboBox.SelectedValue as ComboBoxItem).Content.ToString();
或者对于Tag
:
(myComboBox.SelectedValue as ComboBoxItem).Tag.ToString();
您需要将组合框的SelectedItem属性强制转换为对象,然后才能访问这些属性。因此,在您的情况下,您需要将其强制转换为ComboBoxItem。
您只需要从对象中获取标记。
<ComboBox SelectionChanged="Selector_OnSelectionChanged">
<ComboBoxItem Tag="some value">Text</ComboBoxItem>
<ComboBoxItem Tag="some value2">Text2</ComboBoxItem>
<ComboBoxItem Tag="some value3">Text3</ComboBoxItem>
</ComboBox>
private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
var cb = sender as ComboBox;
if (cb == null)
{
return;
}
var selectedItem = cb.SelectedValue as ComboBoxItem;
if (selectedItem == null)
{
return;
}
var tag = selectedItem.Tag;
Debug.WriteLine(tag);
}
试试这个
<ComboBox Name="comboBox" SelectedValuePath="Content">
<ComboBoxItem>text</ComboBoxItem>
<ComboBoxItem>here</ComboBoxItem>
<ComboBoxItem>text</ComboBoxItem>
</ComboBox>
获取值
var value = comboBox.SelectedValue.ToString()