اتفاقية العنصر Caliburn
-
26-09-2019 - |
سؤال
أثناء محاولة تعلم المصدر لتطبيق عينة من Gamelibrary ، رأيت خطًا كهذا:
ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged");
نظرت إلى مصدر Caliburn لكن لم يستطع فهم اتفاقيات العناصر حقًا.
هل يمكن لأحد أن يصف لفترة وجيزة من فضلك؟
المحلول
ConventionManager.AddElementConvention
يتيح لك إنشاء مجموعة من الإعدادات "الافتراضية" المستخدمة من قبل نظام الاتفاقية لكل عنصر نوع.
في الحالة المذكورة أعلاه ، قيمة المعلمة الأولى من
Rating.ValueProperty
يخبر نظام الاتفاقية ما هي الخاصية الافتراضية المربوطة للعنصر. لذلك ، إذا كان لدينا مباراة مؤتمر علىRating
السيطرة ، قمنا بإعداد الربط مقابلValueProperty
.تمثل المعلمة الثانية الخاصية الافتراضية المراد استخدامها في روابط العمل. لذلك ، إذا قمت بإنشاء إجراء ملزم بـ
ElementName
هذا يشير إلى أRating
السيطرة ، ولكن لا تحدد العقار ، نعود إلىValue
منشأه.أخيرًا ، تمثل المعلمة Thrid الحدث الافتراضي لعنصر التحكم. لذلك ، إذا ربطنا إجراءً بالتحكم في التصنيف ، لكن لا نحدد الحدث لتشغيل هذا الإجراء ، فسوف يعود النظام إلى
ValueChanged
حدث.
تتيح اتفاقيات العناصر هذه للمطور توفير أكبر قدر أو أقل من المعلومات في مجموعة متنوعة من المواقف ، مما يسمح للإطار بملء التفاصيل المفقودة كما AppropTiate.