Я конвертирую программу в MVVM Light из Code Behind.
Часть этого программного обеспечения должна считывать 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();
}