Как использовать MVVM-свет с маркерами?

Я вижу в MVVM-легком пакете, что могу отправить сообщения с маркерами - что я должен сделать, отправляют объект, с сообщением, присоединенным к тому объекту - как, Добавляют, Редактирование, Удаляют что.

Что лучший способ состоит в том, чтобы отправить и получить это сообщение? Я думаю для, отправляют его просто: Messenger. Значение по умолчанию. Отправьте (myObject, ActionEnum. УДАЛИТЕ);

Но в получении: Messenger. Значение по умолчанию. Регистр (это????, HandleMyMessage);

Каков правильный синтаксис?

Спасибо!

8
задан Nicros 3 August 2010 в 02:50
поделиться

2 ответа

Вот быстрый участок кода для отправки и регистра. Уведомление - это сообщение, которое информирует получателя о намерениях. Содержимое - это предмет, который вы хотели отправить, и вы можете дополнительно определить, кто отправил сообщение, и даже для какого объекта это сообщение предназначалось с помощью отправителя и цели.

Messenger.Default.Send<NotificationMessage<Job>>(
    new NotificationMessage<Job>(this, myJob, "Add")
);

Messenger.Default.Register<NotificationMessage<Job>>(
this, nm =>

{
    // this might be a good idea if you have multiple recipients.
    if (nm.Target != null &&
        nm.Target != this)
        return;

    // This is also an option 
    if (nm.Sender != null &&
        nm.Sender != expectedFrom) // expectedFrom is the object whose code called Send
        return;

    // Processing the Message
    switch(nm.Notification)
    {
        case "Add":
            Job receivedJob = nm.Content;
            // Do something with receivedJob
            break;
        case "Delete":
            Job receivedJob = nm.Content;
            // Do something with receivedJob
            break;
    }
});
13
ответ дан 5 December 2019 в 06:09
поделиться

В качестве дополнения: маркер не предназначен для идентификации задачи (уведомления), а скорее для получателя. Получатели, которые регистрируются с тем же токеном, что и отправитель, получат сообщение, в то время как все остальные получатели не получат его.

Для того, что вы хотите сделать, я использую дополнительный тип NotificationMessage, включенный в набор инструментов. У него есть дополнительное строковое свойство (Уведомление), которое вы можете установить на все, что захотите. Я использую это, чтобы «отдавать приказы» получателю.

Ура, Лоран

14
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: