设置ComboBox项标签

时间:2016-03-17 13:38:07

标签: c# wpf combobox

我正在添加ComboBoxItems;

foreach (var cntRef in presetList.Where(filteredPreset => filteredPreset.PresetReferenceFoxPro == 1).ToList())
{
    var newItem = new ComboBoxItem();
    newItem.Content = cntRef.PresetText;
    newItem.Tag = cntRef.PresetIDFoxPro;
    addCntRef1ComboBox.Items.Add(newItem);
}

这显示文字没问题。但是,我在显示Tag时出现问题。当我尝试访问Tag时就这样;

if (addCntRef1ComboBox.Tag.ToString() != null)
{
    MessageBox.Show(addCntRef1ComboBox.Tag.ToString());
}

没有显示任何内容。当我删除null检查程序崩溃时,Tag显然是null。如何添加ComboBoxItem我可以访问的tag

2 个答案:

答案 0 :(得分:4)

您要将标记实例分配给ComboBoxItem而不是ComboBox实例。

newItem.Tag = cntRef.PresetIDFoxPro;

newItemComboBoxItem个实例,但您尝试从Tag变量中访问addCntRef1ComboBox属性

MessageBox.Show(addCntRef1ComboBox.Tag.ToString());

因此程序行为正常。

您需要在ComboBoxItem ComboBox集合中访问具体的Item,如下所示:

MessageBox.Show(addCntRef1ComboBox.Items[0].Tag.ToString());

答案 1 :(得分:0)

我设法使用自己解决了这个问题;

在我的SelectedValuePath="Tag" ComboBox

XAML,然后像访问它一样;

if (addCntRef1ComboBox.SelectedValue.ToString() != null)
{
    MessageBox.Show(addCntRef1ComboBox.SelectedValue.ToString());
}