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";
}
Était-ce utile?

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
    });
}

Vérifier: http: //social.msdn .microsoft.com / Forums / fr-fr / csharpgeneral / fil / 80f29165-acb3-421f-b5bb-856ba99da703

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top