Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there "DisplayMember" and "ValueMember" like Properties for CheckedListBox control? C# winforms

I have this DataTable with the following structure:

ID | VALUE
----------------
1  | Item 1
2  | Item 2
3  | Item 3

And I display the values from the DataTable into a CheckedListBox control by adding each row as an item.

But how can I include the ID? Is there "DisplayMember" and "ValueMember" like Properties for CheckedListBox control?

like image 812
yonan2236 Avatar asked Sep 27 '10 05:09

yonan2236


2 Answers

Well yes, there are DisplayMember and ValueMember properties on CheckedListBox, although the docs for ValueMember claim it's "not relevant to this class".

Here's a quick example showing DisplayMember working:

using System;
using System.Drawing;
using System.Windows.Forms;

class Test
{
    static void Main()
    {
        CheckedListBox clb = new CheckedListBox {
            DisplayMember = "Foo",
            ValueMember = "Bar",
            Items = {
                new { Foo = "Hello", Bar = 10 },
                new { Foo = "There", Bar = 20 }
            }
        };
        Form f = new Form
        {
            Controls = { clb }
        };
        Application.Run(f);
    }
}

Also note that the docs state:

You cannot bind data to a CheckedListBox. Use a ComboBox or a ListBox for this instead. For more information, see How to: Bind a Windows Forms ComboBox or ListBox Control to Data.

Given the above code which works, presumably it's talking about more advanced data binding, using DataSource?

like image 61
Jon Skeet Avatar answered Oct 21 '22 18:10

Jon Skeet


The DataSource, DisplayMember and ValueMember properties are available for this control but they are not displayed in the IntelliSense: MSDN

You should be able to use them though.

like image 37
Johann Blais Avatar answered Oct 21 '22 16:10

Johann Blais