سؤال

أحاول العثور على بعض الاختلافات بين هذه الأساليب. هل هناك أي موقف يتم فيها استخدام السلوكيات ولا يمكن القيام بنفس الوظيفة بخصائص مرفقة؟

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

المحلول

لا. السلوكيات هي في الأساس مجرد تجريد أجمل على رأس الخصائص المرفقة.

باستخدام Behavior<T>, ، يمكنك الوصول إلى AssociatedObject مباشرة ، وكذلك القدرة على ربط السلوك وفصله بسهولة ، في وقت التشغيل.

يمكنك القيام بذلك بخصائص مرفقة ، ولكنها تتطلب إضافة الكثير من السباكة الإضافية.

نصائح أخرى

أميل إلى استخدام السلوكيات لإضافة وظائف تجعل التغييرات المرئية. بينما أستخدم الخصائص المرفقة لإضافة معلومات إضافية إلى كائن يستخدم لاحقًا كائنات أخرى.

على سبيل المثال Grid.row ، تقوم ROW بعمل خاصية مرفقة جيدة ، حيث يتم استخدامها من قبل الشبكة وليس الهدف. من ناحية أخرى ، فإن التصحيح التلقائي سيجعل سلوكًا جيدًا ، حيث سيؤدي ذلك إلى إجراء تغييرات واضحة على الكائن.

تعتمد Behviors على خصائص متصلة. هذا يعني أنه إذا لم تتمكن من العثور على سلوك محدد - فأنت تكتب بنفسك ، إما استنادًا إلى إطار السلوك الذي يوفره المزيج أو عن طريق إنشاء AP الخاص بك ...

أنا دائمًا على الرغم من أن هذه السلوكيات هي دليل كبير على قوة الخصائص المرفقة. فقط لا يصدق ما يمكنك الحصول عليه معهم.

هذه ليست هي الحل. لكن أفضل تفسير يمكنني العثور عليه في هذا الموضوعhttp://briannoyesblog.azurewebsites.net/2012/12/20/attached-behaviors-vs-attached-properties-vs-behaviors/

يصف براين نويز في مقالاته بوضوح الاختلافات بين كل من المفاهيم.

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