Я вижу в MVVM-легком пакете, что могу отправить сообщения с маркерами - что я должен сделать, отправляют объект, с сообщением, присоединенным к тому объекту - как, Добавляют, Редактирование, Удаляют что.
Что лучший способ состоит в том, чтобы отправить и получить это сообщение? Я думаю для, отправляют его просто: Messenger. Значение по умолчанию. Отправьте (myObject, ActionEnum. УДАЛИТЕ);
Но в получении: Messenger. Значение по умолчанию. Регистр (это????, HandleMyMessage);
Каков правильный синтаксис?
Спасибо!
Вот быстрый участок кода для отправки и регистра. Уведомление - это сообщение, которое информирует получателя о намерениях. Содержимое - это предмет, который вы хотели отправить, и вы можете дополнительно определить, кто отправил сообщение, и даже для какого объекта это сообщение предназначалось с помощью отправителя и цели.
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;
}
});
В качестве дополнения: маркер не предназначен для идентификации задачи (уведомления), а скорее для получателя. Получатели, которые регистрируются с тем же токеном, что и отправитель, получат сообщение, в то время как все остальные получатели не получат его.
Для того, что вы хотите сделать, я использую дополнительный тип NotificationMessage, включенный в набор инструментов. У него есть дополнительное строковое свойство (Уведомление), которое вы можете установить на все, что захотите. Я использую это, чтобы «отдавать приказы» получателю.
Ура, Лоран