public void ShowError(Exception exception, IErrorContainer errorContainer) { if (exception == null) { return; } ErrorContainer errorGrid = (ErrorContainer)errorContainer; if (!_dispatcher.CheckAccess()) { _dispatcher.BeginInvoke(() => ShowError(exception, errorGrid)); return; } ErrorNotification errorNotification = new ErrorNotification(); errorGrid.RowDefinitions.Add(new RowDefinition { Height = GridLength.Auto }); errorNotification.SetValue(Grid.RowProperty, errorGrid.RowDefinitions.Count - 1); errorGrid.Children.Add(errorNotification); errorGrid.UpdateLayout(); // Force OnApplyTemplate for ErrorNotification errorNotification.Show(exception); }