سؤال

أنا أعمل على تطبيق لتحرير أزواج الاسم/القيمة باستخدام خاصية الشبكة.بعض الخصائص في صفي الملف ListDictionary مجموعات.هناك محرر السمة التي يمكن أن تنطبق على الإعلان الملكية من شأنها أن تجعل محرر مجموعة العمل في وقت التشغيل?إن لم يكن, هل من الممكن أن ترث من ComponentModel.تصميم.CollectionEditor للاستخدام في وقت التشغيل?أنا بحاجة إلى أن تكون قادرة على إضافة ، حذف و تحرير مجموعة من القيم.شكرا جزيلا, تيري

هل كانت مفيدة؟

المحلول

وأعتقد أن يفسر هذه المادة على ما تحتاج إليه: كيفية تحرير وتستمر مجموعات مع CollectionEditor

نصائح أخرى

من codeproject المادة [http://www.codeproject.com/KB/cs/dzcollectioneditor.aspx][1]

هناك ثلاثة شروط أن مجموعة يجب أن يجتمع من أجل أن تكون بنجاح استمرت مع CollectionEditor:

  1. الأولى جمع يجب تنفيذ IList واجهة (وراثة من النظام.مجموعات.CollectionBase هو في معظم الحالات أفضل خيار).
  2. ثانيا ، يجب أن يكون مفهرس (البند في VB.NET) مكان الإقامة.نوع يتم استخدام هذه الخاصية من قبل CollectionEditor لتحديد النوع الافتراضي من الحالات التي إضافة إلى المجموعة.

    من أجل فهم أفضل كيف يعمل هذا ، نلقي نظرة على GetItemType() وظيفة CustomCollectionEditorForm:

    محمية الظاهري نوع GetItemType(IList كول) { PropertyInfo pi= coll.GetType().GetProperty("البند" ، نوع جديد[]{typeof(الباحث)});تعود بي.PropertyType }

  3. الثالث جمع الصف يجب تنفيذ أحد الإجراءين التاليين أو كليهما الأساليب:إضافة AddRange.على الرغم من أن IList واجهة إضافة الأعضاء ، CollectionBase تنفذ IList ، لا يزال لديك لتنفيذ إضافة طريقة لجمع الخاصة بك ، بالنظر إلى أن CollectionBase يعلن صراحة الأعضاء تنفيذ IList هو إضافة عضو.مصمم serializes جمع وفقا لما طريقة كنت قد نفذت.إذا كنت نفذت على حد سواء ، AddRange هو المفضل.

في هذه المقالة سوف تجد كل ما تحتاجه لتنفيذ جمع الخاصة بك على الشبكة الملكية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top