Хорошо, моя программа в двух словах имеет список клиентов. Все эти клиенты перечислены в списке, поэтому при нажатии на них вся их информация отображается в форме. Это работает через привязку данных, все элементы управления на странице привязаны к selectedItem списка.
То, что я хотел бы сделать сейчас, - это диалоговое окно с сообщением, спрашивающее, хочет ли пользователь сохранить при попытке изменить выбор. Если они не хотят, я хочу вернуть его обратно к исходному элементу в коллекции. Если они нажимают «Отмена», я хочу, чтобы выделение вернулось к ранее выбранному элементу. Мне интересно, как лучше всего сделать это в манере MVVM?
В настоящее время у меня есть модель для моего клиента, и моя виртуальная машина заполняет коллекцию клиентов, с которой связан список. Так есть ли способ обработки события выбора, измененного на виртуальной машине, который включал бы возможность манипулировать selectedIndex списка?
Вот мой код, чтобы вы могли видеть, что я делаю.
if (value != _selectedAccount)
{
MessageBoxResult mbr = MessageBox.Show("Do you want to save your work?", "Save", MessageBoxButton.YesNoCancel);
if (mbr == MessageBoxResult.Yes)
{
//Code to update corporate
Update_Corporate();
_preSelectedAccount = value;
_selectedAccount = value;
}
if (mbr == MessageBoxResult.No)
{
//Do Stuff
}
if (mbr == MessageBoxResult.Cancel)
{
SelectedAccount = _preSelectedAccount;
NotifyPropertyChanged("SelectedAccount");
}
}