سؤال

يمكن للشخص أن يفسر كيف يعمل نمط الوسيط مع مثيلات متعددة.

التعليمات البرمجية الخاصة بي في العرض:

public MyView() {
    Mediator.Register("CloseWindow",()=>Close());
}

وفي ViewModel:

public SomeMethod() {
    Mediator.Notify("CloseWindow");
}

تجد هذه الأعمال طالما يوجد مثيل واحد فقط من ViewModel Pair.

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

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

المحلول

يمكنني استخدام حل بديل. تنفذ MyView واجهة IMYVIEW التي تحتوي على طريقة إغلاق. يربط كائن MyViewModel الرأي، وبالتالي يمكنه استدعاء الأسلوب الإغلاق عبر الواجهة.

إذا كنت مهتما بمثال ملموس، فقد تبحث عن نظرة على:

إطار تطبيق WPF (WAF)

نصائح أخرى

لا أعرف كيف يعمل تنفيذك الخاص لنمط الوسيط، ولكن في مجال الألغام، يمكنك إرسال معلومات أكثر من سلاسل فقط.

علي سبيل المثال:

public MyView() {
    Mediator.Register<CloseWindowMessage>(message =>
    {
        if (message.ViewModel == DataContext) Close();
    });
}    

وفي ViewModel:

public SomeMethod() {
    Mediator.Notify(new CloseWindowMessage(this));
}

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

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