Как я могу работать со свойством Tag элемента списка проверенных winforms?
Как я могу написать C# winforms код, как это?
Элементы 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 ответ
Решение
Свойство 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
});
}