Comment puis-je travailler avec la propriété Tag d'un WinForms vérifié élément listbox?
-
03-10-2019 - |
Question
Comment puis-je écrire un code C # WinForms comme ça?
Les produits CheckedListBox ne sont pas 'Tag' et propriétés 'ValueMember'.
Je sais qu'il ya beaucoup d'alternatives à ce sujet. Mais je dois travailler de cette façon.
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";
}
La solution
Il n'y a pas de propriété Tag, mais le CheckedListBox accepte un objet (vous ne devez pas mettre des chaînes seulement dedans). Vous pouvez créer votre classe personnalisée pour stocker vos données:
public class CheckListBoxItem
{
public Permission Tag;
public string Text;
public override string ToString() { return Text; }
}
et puis ajoutez cet objet comme élément
foreach (Permission p in selectedRole.PermissionItems)
{
checkedListBox1.Items.Add(new CheckListBoxItem()
{
Tag = p,
Text = p.PermissionKey
});
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow