Domanda

Come faccio a scrivere un codice C # WinForms come questo?

elementi

??CheckedListBox non hanno 'Tag' e le proprietà 'ValueMember'.

So che ci sono molte alternative a questo. Ma ho bisogno di lavorare in questo modo.

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";
}
È stato utile?

Soluzione

Non v'è alcuna proprietà Tag, ma il CheckedListBox accetta qualsiasi oggetto (non c'è bisogno di mettere solo le stringhe in esso). È possibile creare la classe personalizzata per contenere i dati:

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

e quindi aggiungere questo oggetto come elemento

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

Controlla: http: //social.msdn .microsoft.com / Forum / it-IT / csharpgeneral / thread / 80f29165-acb3-421f-b5bb-856ba99da703

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top