C # انقر فوق زر أحداث إطلاق النار بعد القيادة

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

  •  06-07-2019
  •  | 
  •  

سؤال

وأواجه مشكلة في محاولة للحصول على الحدث انقر فوق لاطلاق النار بعد يعدم الأمر. واني اسعى الى اتباع أسلوب MVVM التنمية.

وهنا هو السيناريو:

في طلبي لدي شبكة من 2 التي كتبها N أزرار، حيث N هو مجموعة تحميلها بشكل حيوي من الأزرار (في بعض الأحيان سوف يكون 2 × 2، وأحيانا ل 5 × 9، وأنا لا أعرف). في البداية، كافة الأعمدة من الأزرار سوف تكون مخفية باستثناء العمود الأول. عند النقر على العمود الأول، ويحصل على أمر إعدام، وتتلاشى في الرسوم المتحركة يحصل لعبت ويظهر بعض الأزرار من العمود الثاني، اعتمادا على الزر الذي تم النقر في العمود الأول. على سبيل المثال، يؤدي النقر على الزر العلوي في العمود الأول سوف تكشف عن الأزرار الأربعة الأولى في العمود الثاني، في حين أن الزر السفلي في العمود الأول سوف تكشف عن الأزرار الثلاثة الأولى في العمود الثاني.

وهنا المشكلة:

لكل زر، أنا وضعت CommandParameter إلى كل من الأزرار في العمود الأول. عندما يحصل على تنفيذ الأمر، ويحصل على معالجة البيانات، ويتم تعيين خاصية في VM أن يقول الذي تم الضغط على زر (أنا فقط استخدام CommandParameter مرة أخرى). بينما يتم معالجة البيانات، وأريد أن عرض المجموعة التالية من أزرار للمستخدم. لدي الحدث انقر فوق يأخذ CommandParameter من VM وتلعب الرسوم المتحركة لإظهار أزرار المناسبة.

ولكن المشكلة هي أن WPF يحب القيام به الحدث Click أولا قبل ان يحصل أطلق الأوامر. هذه هي مشكلة منذ العقارات في VM تقول الزر الذي تم النقر لا الحصول على تعيين!

وحتى هذا يقودني إلى بعض الأسئلة ...

1) هل هناك طريقة لتنفيذ الأمر قبل إطلاق الحدث؟

2) أنا أفعل ذلك الحق؟ : P

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

المحلول

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

ويمكنهم الرد على الممتلكات في ViewModel الخاص بك، وإخفاء الأزرار التي لا تريد عرضها، ويظهر الزر الذي تقوم به.

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

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