我正在添加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
?
答案 0 :(得分:4)
您要将标记实例分配给ComboBoxItem
而不是ComboBox
实例。
newItem.Tag = cntRef.PresetIDFoxPro;
而newItem
是ComboBoxItem
个实例,但您尝试从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());
}