【问题标题】:Xamarin Forms and IEventAggregatorXamarin 表单和 IEventAggregator
【发布时间】: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


    【解决方案1】:

    我知道我不能简单地使用包的那部分,我需要使用 prism 模板开始一个新模板并使用所有包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多