كيف يمكنني العمل مع خاصية العلامة الخاصة بعنصر قائمة WinForms؟
-
03-10-2019 - |
سؤال
كيف يمكنني كتابة رمز C# winforms مثل هذا؟
لا تحتوي عناصر CheckedListbox على خصائص "علامة" و "Valuemmed".
أعلم أن هناك العديد من البدائل لهذا. لكني بحاجة إلى العمل بهذه الطريقة.
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";
}
المحلول
لا توجد خاصية TAG ، لكن 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
});
}
لا تنتمي إلى StackOverflow