如何在列表框c#中提交额外的值?

时间:2016-05-15 16:18:30

标签: c# wpf xaml listbox

我有一个问题,我无法找到答案。首先,我是编程中的菜鸟,所以所有建设性的反馈当然都是受欢迎的。

我们正在研究c#中的程序。在列表框中,我放置了对象(矩形)。这些矩形的参数(嗯,只有颜色,如高度和宽度是固定的)被保存到数据库中。但我想给列表框中的每个对象一个额外的值(确切地说,我想在数据库中给出对象的id)。因此,稍后,我可以在列表框中获取所选项目的ID。这可能吗?

 //########## TOEVOEGEN VAN KLEUR AAN LISTBOX MET KLEURTJES + INITIALISATIE
        var queryKLeurenInDatabase = (from kleurtjes in dbo.tblKleurs
                                      select kleurtjes);
        foreach (var item in queryKLeurenInDatabase)
        {
            int red, green, blue,ID;
            Rectangle kleurBox = new Rectangle();
            kleurBox.Height = 18;
            kleurBox.Width = 160;
            red = item.Red.Value;
            green = item.Green.Value;
            blue = item.Blue.Value;
            ID = item.KleurID;
            kleurBox.Fill = new SolidColorBrush(new Color() { R = Convert.ToByte(red), G = Convert.ToByte(green), B = Convert.ToByte(blue), A = 255 });
            ListItem dataItem = new ListItem();
            dataItem.Tag = ID;                
            listBoxOpgeslagenKleuren.Items.Add(kleurBox);
            //ListItem dataItem = new ListItem();
            //dataItem.Text = "value to show";
            //dataItem.Value = *another value you want *;
            //listBox.Items.Add(dataItem);
        }

1 个答案:

答案 0 :(得分:1)

正如评论者所指出的,解决方案是创建自己的类,如下所示:

public class DataItem { 

    public Rectangle Rect { get; set; }
    public string ID { get; set; }

}

比创建List<DataItem> listToBind并将其绑定到ListBox