Как передать и получить параметр события Sender при использовании Prism? - PullRequest
1 голос
/ 11 апреля 2020

В типичном. NET Синтаксис обработчика событий, мы получаем объект Sender в качестве первого параметра:

Private Sub Button_Click(Sender As Object, e As EventArgs) Handles Me.Button.Click
End Sub

Значение, содержащееся в этом параметре, может быть полезно для любого количества сценариев ios.

Однако при использовании Агрегатора событий Prism такого параметра Sender не существует. Таким образом, мы, похоже, не можем знать, кто / что / кто вызвал событие.

Есть ли способ отправить / получить Отправителя при использовании Prism?

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете поместить отправителя в полезную нагрузку:

public class MyPayload
{
    public MyPayLoad( object sender, SomeType someData )
    {
        Sender = sender;
        SomeData = someData;
    }

    public object Sender { get; }
    public SomeType SomeData { get; }
}

eventAggregator.GetEvent<MyEvent>().Publish( new MyPayload( this, myData ) );

Я бы использовал что-то более конкретное c, чем object для отправителя в реальном приложении.

...