private static async void PropertyChangedCallbackAsync(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) { //if (!DesignerProperties.GetIsInDesignMode(dependencyObject)) //{ // return; //} var frameworkElement = dependencyObject.Cast <FrameworkElement>(); var newType = dependencyPropertyChangedEventArgs.NewValue.Cast <Type>(); var taskResult = await Task.Run(() => newType.Create(RandomDefaultData, ObjectCreationStrategy)); frameworkElement.DataContext = taskResult; }