繁体   English   中英

MVVMLight Messenger发送-暂停方法

[英]MVVMLight Messenger Send - Pause method

我正在从“隐藏代码”将程序转换为MVVM Light。

此软件的一部分,必须从我们的银行读取CSV文件,获取所有数据,进行转换,然后将其复制为新的CSV,然后将其上传到我们的会计软件中。

如果是第一次上传信用卡,则使用后面的代码读取CSV时会打开一个新表格,以便设置一些默认值,一旦设置了默认值,它将继续处理。

我一直在使用MessengerInstance在表单之间交换和在视图模型之间传递数据。 但是我不知道如何发送消息,请暂停当前运行的方法,直到发送回消息为止。

发信息

     selectedCreditCard =
           _creditCardList.SingleOrDefault(x => x.CreditCardNumber == existingColumns[1]);
                 if (selectedCreditCard == null)
                 {
                     MessengerInstance.Send(Messaging.FormChanged.NewCreditCard);
                     MessengerInstance.Send(existingColumns[1], Messaging.MessengerTokens.
                  }

接收讯息

  public NewCreditCardViewModel()
    {
        Messenger.Default.Register<string>(this, Messaging.MessengerTokens.NewCreditCards, value => AccountName = value);

        SaveCommand = new RelayCommand(SaveNewCreditCard);
        RefreshCommand = new RelayCommand(RefreshVendorsAndReviewers);
        CreditCard = new VPCreditCard();
    }

如果我正确理解你

您希望将其与消息保持分离,然后只需从默认表单中的确定发送回一条消息即可继续进行处理。 即保存状态并继续使用默认设置

  1. 处理CSV第1部分(停止处理,保存状态,检查新抄送)

    1.a-如果是新抄送,则将邮件发送到默认表单(如果不是新抄送,则处理CSV第2部分)

    1.b-默认设置打开,单击确定,发送回信处理表格

  2. 接收完成的默认消息,处理CSV第2部分(从上次中断处继续)

前提是您只需要将CSV处理分为2部分,2种方法,并允许其通过其状态自行恢复

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM