سؤال

أحاول الحصول على فهم عام لكيفية استخدام Isustomypedescriptor و TypedescriptionProvider و Typeconverter و UATYPEEDITOR لتغيير كيفية عرض واجهات خصائص وواجهات كائن.

هل يمكن لأي شخص أن يقول لي إذا كان هذا صحيحا، أو إذا فاتني أي مفاهيم أو نقاط كبيرة؟ أنا حقا أحاول فقط فهم السبب وعندما تستخدم كل فئة.

Isustomypedescripttor.

  • يؤدي تنفيذ هذه الواجهة في فئة Totaly إلى تجاوز الخصائص الأصلية للفئة واستبدالها بخصائص PropertyDescriptor التي تم إرجاعها بواسطة Isustomypedescriptor.getproperties ()

typedescriptionprovider.

  • تستخدم لتوسيع نطاق الخصائص الموجودة لفئة
  • يتم إلحاق typedescriptionprovider إلى فئة من خلال سمة typedescriptionprovider
  • تقوم طريقة Gettypedescriptor () بنظام TypedescriptionProvider بإرجاع ICUSTOMTYPTESTOR ملحق إلى الخصائص الحالية للنوع.
  • سيعرض خصائص الفصل الدراسي الذي تم العثور عليه من خلال التفكير، والخصائص المضافة إلى الفصل من خلال typedescriptionprovider

Typeconverter.

  • يحول بين الأنواع
  • من حيث استخدام PAPETYGRID المستخدمة للتحويل بين الأنواع المعقدة وأنواع البدائية التي يمكن عرضها / تم تحريرها في شبكة الخاصية.
  • يمكن أيضا استخدام طريقة القيم GetStrastardard الخاصة ب Typeconverter لإظهار قائمة بالقيم المحتملة في SpellPrid

uitypeeditor.

  • يحدد محرر مخصص لمعالجة خاصية من نوع معقد.
  • المرتبطة بممتلكات من خلال سمة.

لذلك يتم استخدام Isustomtypedescriptor يتم استخدام موفر TypeDescription لإضافة / تغيير / استبدال خصائص الكائنات بأكملها. يتم تطبيق Typeconverter و uitypeeditor على الخصائص الفردية والتحكم في كيفية تربيت هذه الخصائص المحددة.

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

المحلول

القرص:

  • TypeDescriptionProvider

    • ما يزال يستبدل البيانات الوصفية (لا تمتد)
    • يمكن أيضا أن تضاف TypeDescriptor.AddProvider
    • يمكن تطبيقها لكل نوع وكذلك على سبيل المثال، مما يجعل من الممكن التقدم بطلب للحصول على قوائم دون الحاجة إلى التنفيذ ITypedList
  • TypeConverter

    • بالنسبة PropertyGrid, هذه هي أيضا الآلية المستخدمة للحصول على البيانات الوصفية؛ لاحظ أن ExpandableObjectConverter مندوبون ببساطة TypeDescriptor.GetProperties, ، ولكن هذا ليس هو الحال دائما
    • مسؤولة أيضا عن إعادة إنشاء كائنات ثابتة (مثل الهياكل) مع التغييرات
  • UITypeEditor

    • مسؤولة أيضا عن رسم مربع المعاينة في PropertyGrid

إضافي:

  • IExtenderProvider - يلحق الخصائص؛ قد يكون هذا ما كنت تشعر بالارتباه TypeDescriptionProvider
  • ITypedList - على نطاق واسع التوأم من ICustomTypeDescriptor, ، ولكن للقوائم؛ يمكن تجنبها عن طريق استخدام TypeDescriptionProvider ومفهرس غير كائن على أي IList, ، بمعنى آخر public T this[int index] {get;}
  • IListSource - يوفر غير مباشر بين مصدر البيانات والبيانات؛ على سبيل المثال، DataTable تنفذ IListSource, ، عودة DefaultView عند الطلب
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top