Frage

Wie kann ich einen C # WinForms Code wie diesen schreiben?

CheckedListBox Artikel nicht haben 'Tag' und 'Valuemember' Eigenschaften.

Ich weiß, es gibt viele Alternativen dazu. Aber ich brauche es auf diese Weise zu arbeiten.

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";
}
War es hilfreich?

Lösung

Es gibt keine Eigenschaft Tag, aber das CheckedListBox akzeptiert jedes Objekt (Sie müssen nur Strings es nicht gesetzt). Sie können Ihre eigene Klasse erstellen Sie Ihre Daten halten:

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

und fügen Sie dann dieses Objekt als Element

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

Überprüfen Sie: http: //social.msdn .microsoft.com / Foren / en-us / csharpgeneral / thread / 80f29165-acb3-421f-b5bb-856ba99da703

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top