private async Task OnParentViewModelSavingAsync(object sender, SavingEventArgs e)
{
// The parent view model is saved, save our view model as well
if (ViewModel != null)
{
if (ReferenceEquals(sender, ViewModel))
{
Log.Warning("Parent view model '{0}' is exactly the same instance as the current view model, ignore Saving event", sender.GetType().FullName);
return;
}
if (e.Cancel)
{
Log.Info("Parent view model '{0}' is saving, but saving is canceled by another view model, saving of view model '{1}' will not continue", _parentViewModel.GetType(), ViewModel.GetType());
return;
}
Log.Info("Parent view model '{0}' is saving, saving view model '{1}' as well", _parentViewModel.GetType(), ViewModel.GetType());
if (!ViewModel.IsClosed)
{
e.Cancel = !await ViewModel.SaveViewModelAsync();
}
}
}