Как я могу работать со свойством Tag элемента списка проверенных winforms? - PullRequest
1 голос
/ 20 мая 2010

Как я могу написать код winforms C #, как этот?

У элементов CheckedListBox нет свойств 'Tag' и 'ValueMember'.

Я знаю, что есть много альтернатив этому.Но мне нужно работать таким образом.

private void LoadPermissionsToCheckedListBox()
{
    Role selectedRole = (Role)comboBox1.SelectedItem;

    int i = 0;
    foreach (Permission p in selectedRole.PermissionItems)
    {
        checkedListBox1.Items.Add(p);
        checkedListBox1.Items[i].Tag = p;
    }

    checkedListBox1.DisplayMember = "PermissionKey";
    checkedListBox1.ValueMember = "PermissionID";
}

1 Ответ

4 голосов
/ 23 апреля 2012

Нет свойства Tag, но CheckedListBox принимает любой объект (вам не нужно помещать в него только строки). Вы можете создать свой собственный класс для хранения ваших данных:

public class CheckListBoxItem
{
    public Permission Tag;
    public string Text;
    public override string ToString() { return Text; }
}

и затем добавьте этот объект как элемент

foreach (Permission p in selectedRole.PermissionItems)
{
    checkedListBox1.Items.Add(new CheckListBoxItem()
    {
        Tag = p,
        Text = p.PermissionKey
    });
}

Проверка: http://social.msdn.microsoft.com/Forums/en-us/csharpgeneral/thread/80f29165-acb3-421f-b5bb-856ba99da703

...