تصفية مربعات القائمة في تطبيق Windows Forms
-
07-07-2019 - |
سؤال
هل من الممكن تصفية محتويات Listbox في تطبيق Windows Forms؟
مصدر البيانات الخاص بـ ListBox الخاص بي هو مصدر ربط يحتوي على مجموعة من DTOs في:
IList<DisplayDTO>
أريد التصفية على خاصية DTO المحددة في DisplayMember الخاص بـ ListBox.
يتم توفير النص المراد تصفيته في مربع نص منفصل.
المحلول
يجب أن يعمل هذا:
private void textBox_TextChanged(object sender, EventArgs e)
{
bindingSource.Filter = string.Format("[{0}] LIKE '%{1}%'",
listBox.DisplayMember,
textBox.Text.Replace("'", "''"));
}
يحرر:يعمل هذا فقط إذا كان مصدر البيانات الأساسي (bindingSource.DataSource
) ينفذ IBindingListView
.في FCL، فقط DataView
تطبق الطبقة هذه الواجهة.
يمكنك إنشاء التنفيذ الخاص بك عن طريق الوراثة من BindingList<T>
.هنا مقالة وهذا يشرح كيفية إضافة وظيفة التصفية.يمكنك أيضًا العثور على تطبيقات مختلفة لـ SortableBindingList
على جوجل.
لا تنتمي إلى StackOverflow