ViewModel شجرة مقابلفي كثير من الأحيان تحديث نموذج شجرة

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

  •  06-07-2019
  •  | 
  •  

سؤال

في WPF MVVM تطبيق نموذج عملي هو مجمع شجرة نموذج الكائنات اللي تبونه باستمرار تغييرات في وقت التشغيل.نموذج الحالات تأتي وتذهب في وقت التشغيل, تغيير موقفهم داخل الشجرة و بالطبع تغيير العديد من الخصائص.رأيي هو تقريبا واحد-إلى-واحد تمثيل مرئي من تلك الشجرة.كل نموذج مثيل في 80% من الحالات أيضا عقدة في الشجرة.

السؤال الآن كيف سيكون تصميم ViewModel حول هذا ؟ مشكلتي هي أن هناك الكثير جدا من طراز مختلف أنواع مع بعضها الكثير جدا من الخصائص.إذا فهمت MVVM corretcly الرأي لا ينبغي أن التواصل مع نموذج مباشرة لذلك هذا يعني أن علي إنشاء ViewModel نوع لكل طراز من نوع إلى إعادة تغليف كل خاصية من نوع الموديل في ViewModel.

أيضا ViewModel بحاجة إلى "مأزق" إلى propertychanges من نموذج إلى تمريرها على طول إلى عرض (باستخدام wpf datatbinding).أنا بحاجة إلى بعض المصنع الذي يخلق يدخل ViewModel سبيل المثال لكل نموذج الذي يظهر من جديد و أود أن habe للتخلص كل ViewModel سبيل المثال عندما المقابلة نموذج يختفي.أنا في نهاية المطاف تتبع جميع الحالات أنا خلقت.أنه أمر لا يصدق كم سخام التعليمات البرمجية تم إنشاؤه مستحقات هذه مزدوج التفاف.هذا هو حقا جيدة النهج ؟ كل كيان وكل مكان الإقامة المزيد من خام أقل موجود مرتين و لدي الكثير من رمز إضافية الحفاظ على نموذج عرض في المزامنة.كيف يمكنك التعامل مع هذا ؟ هل هناك طريقة أكثر ذكاء لحل هذا ؟

هل لدى أحد المراجع/تطبيق نموذج على هذا أن يفعل ذلك على نحو أفضل مما كنت تفعل ؟

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

المحلول

أعتقد أنك قد واجهت فخ النموذج إذا كنت تتبع هذا المسار.MVVM هو لا شيء أكثر من نمط ، الذي يبسط التنمية في WPF العالم.إذا كان لا - لا تستخدم أو تنقيح النهج الخاص بك.لن تنفق 80% من وقتي فقط إلى التحقق من "باستخدام MVVM" الميدانية.

نعود الآن إلى السؤال الخاص بك.تصحيح لي إذا كنت مخطئا ولكن هذا يبدو وكأنه كنت تبحث في MVVM من الاتجاه المعاكس:لا تحتاج نموذج إلى ViewModel واحد الى واحد المراسلات.عادة يمكنك إنشاء ViewModels على الرأي الأول ، وبعد ذلك فقط على نموذج.

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

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

آسف على الإجابة غامضة جدا.ربما إذا كنت تسأل أكثر من سؤال محدد يمكننا تبديد اللبس :)...

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