Isustomypedescriptor، typedescriptionprovider، typeconverter، uitypeeditor
-
09-09-2019 - |
سؤال
أحاول الحصول على فهم عام لكيفية استخدام 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
عند الطلب
لا تنتمي إلى StackOverflow