我想知道如何将两个或多个参数传递给Prism事件聚合器(事件类继承CompositePresentationEvent)?
我知道我可以创建像EventArgs这样的包装类,并为我需要的每个值创建属性,但我宁愿传递两个不同的参数。
这可能吗?
答案 0 :(得分:3)
不幸的是,事件聚合器仅设置为传递单个参数。但是,该参数可以是一个类或结构。
以下是我使用事件聚合器传递的“消息”示例,包括回调参数。
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 */ } });