private static void ProgressPropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) {
var isLoading = (bool)dependencyObject.GetValue(IsInProgressProperty);
var isError = (bool)dependencyObject.GetValue(IsErrorProperty);
dependencyObject.SetValue(IsStatusVisibleProperty, isError || isLoading);
var canTryAgain = (bool) dependencyObject.GetValue(CanTryAgainProperty);
dependencyObject.SetValue(IsTryAgainButtonVisibleProperty, isError && canTryAgain);
}