سؤال

أنا أعمل مع بنية شجرة باستخدام WPF ونمط MVVM. أبدأ بإنشاء 20 عقدًا من الجذر وتحميل العقد الفرعية كسولًا حيث يتم النقر على كل عقدة. على سبيل المثال ... إذا كان لدي ما يلي:

Level 1
    Level 1.1
Level 2
Level 3
    Level 3.1
    Level 3.2

يتم تحميل المستويات 1 و 2 و 3 في وقت التشغيل. لن يتم تحميل المستويات 1.1 و 3.1 و 3.2 حتى يتم النقر على والديهم. يتم تحميل المستويات أقل من 1.1 وما إلى ذلك بنفس الطريقة ، من خلال النقر على والديهم.

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

سؤالي هو ، هل يمكنني قمع الدعوة بطريقة ما إلى "Canexecute"؟ ليس لدي حاجة إلى تسميتها لأن هذه المستويات الفرعية وأرغب في تجاوزها. أنا جديد جدًا في إطار عمل MVVM ، لذا لست متأكدًا مما إذا كان هذا ممكنًا.

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

المحلول

إذا كنت تستخدم PRISM (إرشادات التطبيق المركب لـ WPF و Silverlight) "DePatecommand" في نموذج العرض الخاص بك ، فسيتعين عليك الاتصال بشكل صريح. raisecanexecutechanged كلما أردت أن يتم استدعاء Canexecute عليه.

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