WinForms Checked ListBoxアイテムのタグプロパティを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2870993

質問

このようなc#winformsコードを書くにはどうすればよいですか?

CheckEdListBoxアイテムには、「タグ」および「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";
}
役に立ちましたか?

解決

タグプロパティはありませんが、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
    });
}

小切手:http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/80f29165-acb3-421f-b5bb-856ba99da703

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top