【发布时间】:2020-07-18 16:09:01
【问题描述】:
为我的工作制作我的 APP 我遇到了一个问题:
我有一个基本页面来填写订单信息 1 位客户 2 目的地 3 条
当我点击一个按钮时,我会看到一个新页面(与我搜索的客户、目的地、文章不同),其中包含项目的列表视图。在点击项目时,我想将参数传递到主页以编译订单。 我认为更好的解决方案是实现 PRISM 的 IEventAggregator,我也做了一些测试,它可以与按钮一起使用,但是如果我尝试将它放在 itemtapped 上,它会给我错误。
我已经为事件创建了类以传递有效负载。
这是(理论上)必须将所选客户端传递到主页的页面的 xaml.cs:
IEventAggregator _ea;
private Cliente cliente_selezionato = new Cliente();
...
public void TapCliente(object sender, ItemTappedEventArgs e, IEventAggregator ea )
{
cliente_selezionato = (Cliente)
((ListView)sender).SelectedItem;
_ea.GetEvent<CambioClienteEvent>().Publish(cliente_selezionato);
Navigation.PushModalAsync(new DatiTestataOC());
}
在我的主页视图模型上:
public DatiTestataOCViewModel(IEventAggregator ea)
{
ea.GetEvent<CambioClienteEvent>().Subscribe(NuovoCliente);
}
private void NuovoCliente(Cliente Parameter)
{
Cliente = Parameter;
}
我得到的错误是: 错误 XFC0002 事件处理程序“TapCliente”在类型“Mokadroid.Views.SceltaClientePage”中找不到正确的签名。 Errore XFC0004 缺少“Mokadroid.ViewModels.DatiTestataOCViewModel”的默认构造函数。
如果您有其他更易于实施的解决方案,我愿意...
谢谢
【问题讨论】:
标签: xamarin.forms