public static FromAsync ( string text, Func |
||
text | string | The text. |
executeAsync | Func |
The async execute delegate. |
canExecute | Func |
The can execute delegate. |
return |
/// <summary> /// Invoked when the control has been initialized. /// </summary> /// <param name="e">The event args.</param> protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); if (CatelEnvironment.IsInDesignMode) { return; } var newContentAsFrameworkElement = Content as FrameworkElement; if (_isWrapped || !WrapControlService.CanBeWrapped(newContentAsFrameworkElement)) { return; } var languageService = ServiceLocator.Default.ResolveType <ILanguageService>(); if (IsOKButtonAvailable) { var button = DataWindowButton.FromAsync(languageService.GetString("OK"), OnOkExecuteAsync, OnOkCanExecute); button.IsDefault = DefaultButton == DataWindowDefaultButton.OK; _buttons.Add(button); } if (IsCancelButtonAvailable) { var button = DataWindowButton.FromAsync(languageService.GetString("Cancel"), OnCancelExecuteAsync, OnCancelCanExecute); button.IsCancel = true; _buttons.Add(button); } if (IsApplyButtonAvailable) { var button = DataWindowButton.FromAsync(languageService.GetString("Apply"), OnApplyExecuteAsync, OnApplyCanExecute); button.IsDefault = DefaultButton == DataWindowDefaultButton.Apply; _buttons.Add(button); } if (IsCloseButtonAvailable) { var button = DataWindowButton.FromSync(languageService.GetString("Close"), OnCloseExecute, OnCloseCanExecute); button.IsDefault = DefaultButton == DataWindowDefaultButton.Close; _buttons.Add(button); } foreach (var button in _buttons) { _commands.Add(button.Command); } var wrapOptions = WrapControlServiceWrapOptions.GenerateWarningAndErrorValidatorForDataContext | WrapControlServiceWrapOptions.GenerateAdornerDecorator | WrapControlServiceWrapOptions.ExplicitlyAddApplicationResourcesDictionary; switch (_infoBarMessageControlGenerationMode) { case InfoBarMessageControlGenerationMode.None: break; case InfoBarMessageControlGenerationMode.Inline: wrapOptions |= WrapControlServiceWrapOptions.GenerateInlineInfoBarMessageControl; break; case InfoBarMessageControlGenerationMode.Overlay: wrapOptions |= WrapControlServiceWrapOptions.GenerateOverlayInfoBarMessageControl; break; } _isWrapped = true; var contentGrid = WrapControlService.Wrap(newContentAsFrameworkElement, wrapOptions, _buttons.ToArray(), this); var internalGrid = contentGrid.FindVisualDescendant(obj => (obj is FrameworkElement) && string.Equals(((FrameworkElement)obj).Name, WrapControlServiceControlNames.InternalGridName)) as Grid; if (internalGrid != null) { internalGrid.SetResourceReference(StyleProperty, "WindowGridStyle"); if (_focusFirstControl) { newContentAsFrameworkElement.FocusFirstControl(); } _defaultOkCommand = (from button in _buttons where button.IsDefault select button.Command).FirstOrDefault(); _defaultOkElement = WrapControlService.GetWrappedElement <ButtonBase>(contentGrid, WrapControlServiceControlNames.DefaultOkButtonName); _defaultCancelCommand = (from button in _buttons where button.IsCancel select button.Command).FirstOrDefault(); InternalGrid = internalGrid; OnInternalGridChanged(); } }