كيف يمكنك الاستمرار في عرض المنطق من النموذج والمنطق التجاري من نموذج العرض في MVVM؟

StackOverflow https://stackoverflow.com/questions/900991

سؤال

لا يمكنني معرفة كيفية إخطار نموذج العرض بالتغيرات في النموذج دون إضافة مجموعة من الأشياء المحددة واجهة المستخدم مثل InotifyProperyChanged و InotifyCollectionChanged في نموذجي أو إنشاء طن من الأحداث المختلفة والقيام بمجموعة من الأشياء التي تشعر بها مثل أنهم ui محددة ويجب أن يبقى بعيدا عن النموذج.

خلاف ذلك، أود فقط تكرار جميع منطق الأعمال في نموذج العرض للتأكد من أن كل شيء محدث، ثم ما هي نقطة وجود النموذج بعد ذلك؟

واحدة من تلك الصعبة التي لدي في نموذجي هي خاصية فئة "فئة". يمكنك التفكير في الأمر كمهيكل شجرة والعقودة كل من أحفاد العقدة ورقة. في النموذج الذي يتم إنشاؤه بالملكية على ذبابة متكررة من خلال كل أطفاله، وهذا كل شيء على ما يرام وجيد. ومع ذلك، يحتاج نموذج العرض إلى ربط هذه الخاصية ويحتاج إلى معرفة متى يتغير. يجب أن أغير النموذج فقط لاستيعاب نموذج العرض؟ إذا قمت بذلك، فإن النموذج المنظر لا يفعل أي شيء في هذه المرحلة، يرفع النموذج جميع الإخطارات الضرورية للتغييرات ويمكن أن يرتبط العرض مباشرة إلى النموذج. أيضا إذا كان النموذج شيء لم يكن لدي المصدر إليه، فكيف يمكنني الحصول على هذا؟

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

المحلول

أنا لا أوافق على ذلك INotifyPropertyChanged و INotifyCollectionChanged هي واجهة المستخدم الخاصة. هم في مساحات الأسماء والجمعيات غير المرتبطة بأي مكدس UI معين. لهذا السبب، وضعت عادة هذا النوع من السلوك منخفضة في النظام كما أستطيع (عادة طبقة البيانات).

إذا كان هناك بعض السبب لا ترغب في وضعه في هذا المستوى، فلا بأس بذلك. يمكنك وضعه في مستوى أعلى مثل خدمة الخدمة أو UI. ومع ذلك، تحتاج إلى التأكد من حدوث جميع التغييرات في هياكل البيانات من خلال تلك الطبقة أيضا.

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