我有以下Combobox

<ComboBox x:Name="Colors" FontSize="20">
        <ComboBoxItem Background="#46d6db" Tag="#46d6db">Blue</ComboBoxItem>
        <ComboBoxItem Background="#FDB75B" Tag="#FDB75B">Orange</ComboBoxItem>
        <ComboBoxItem Background="#51B749" Tag="#51B749">Green</ComboBoxItem>
</ComboBox>


现在,您将看到三个具有特定Tag属性的ComboBoxItem。这里的tag属性是颜色的值。

我需要知道的是:如何通过Tag属性获取特定ComboBoxItem的索引?

我将尝试更清楚地解释这一点:假设我有一个名为color的字符串作为值#FDB75B,现在我需要找到具有相同Tag的ComboBox项并占据此,尤其是。

string color = "#FDB75B";
//In this way I get the Tag property of the selected item
((ComboBoxItem)Colors.SelectedItem).Tag.ToString();


现在,我需要做相反的情况,找到标记为ComboBoxItemComboBoxItem索引,并自动将其选择为:

Colors.SelectedIndex = "element found";


这可能吗?

最佳答案

使用linq查询并找出答案。这是一个示例代码

var selectedItem = Colors.Items
  .Cast<ComboBoxItem>()
  .Where(e => e.Tag.ToString() == "#FDB75B")
  .FirstOrDefault();

Colors.SelectedItem = selectedItem;

关于c# - 如何通过标签获取ComboboxItem索引?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37054482/

10-13 08:08