Несколько параметров с CompositePresentationEvent <> в Prism - PullRequest
3 голосов
/ 21 февраля 2012

Я хотел бы знать, как передать два или более параметров в агрегатор событий Prism (класс событий наследует CompositePresentationEvent)?

Я знаю, что могу создать класс-оболочку, например EventArgs, и создать свойство для каждого нужного мне значения, но я бы предпочел передать два различных параметра.

Возможно ли это?

1 Ответ

3 голосов
/ 22 февраля 2012

К сожалению, агрегатор событий настроен только на передачу одного параметра. ОДНАКО этот параметр может быть классом или структурой.

Вот пример «сообщения», которое я передаю с помощью агрегатора событий, включая параметр обратного вызова.

public class OpenViewPayload
{
    public string ViewName;
    public object Context;
    public Action callback;
}

[Export]
[PartCreationPolicy(CreationPolicy.Shared)]
public class OpenViewEvent : CompositePresentationEvent<OpenViewPayload>
{
}

Использование:

 _eventAggregator.GetEvent<OpenViewEvent>().Publish(new OpenViewPayload() { ViewName = "CustomerView", Context = _selectedCustomerID, callback= ()=> { /* Close Current View */ } });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...