private async Task InitializeViewModelAsync()
{
var viewModel = ViewModel;
if (ViewModel != null)
{
// Initialize the view model. The view model itself is responsible to prevent double initialization
await viewModel.InitializeViewModelAsync();
// Revalidate since the control already initialized the view model before the control
// was visible, therefore the WPF engine does not show warnings and errors
var viewModelAsViewModelBase = viewModel as ViewModelBase;
if (viewModelAsViewModelBase != null)
{
viewModelAsViewModelBase.Validate(true, false);
}
else
{
viewModel.ValidateViewModel(true, false);
}
_isFirstValidationAfterLoaded = true;
}
}