Android - startActivityForResult, немедленно запускающий onActivityResult

То, что вы описываете, выглядит как шаблон посредника , в котором объекты обмениваются сообщениями. Эти сообщения могут быть реализованы как события, обратные вызовы или любой другой механизм.

Вы можете использовать реализацию, такую ​​как класс MVVM Light Messenger (эта структура предназначена для использования с WPF и Silverlight, но вы можете получить код для этого конкретного класса и использовать его в WinForms)

// Register for a specific message type
Messenger.Default.Register(this, DoSomething);
...

// Called when someone sends a message of type TypeOfTheMessage
private void DoSomething(TypeOfTheMessage message)
{
    // ...
}

// Send a message to all objects registered for this type of message
Messenger.Default.Send(new TypeOfTheMessage(...));

Большое преимущество класса Messenger в отношении статического события заключается в том, что он использует слабые ссылки , поэтому он не мешает сборке подписанных объектов, что снижает риск утечек памяти.

Подробную информацию о классе Messenger

см. в этой ссылке

139
задан stkent 16 March 2017 в 17:08
поделиться