Catel.Windows.DataWindowButton.FromSync C# (CSharp) Method

FromSync() public static method

Initializes a new instance of the DataWindowButton class.
public static FromSync ( string text, System.Action execute, Func canExecute = null ) : DataWindowButton
text string The text.
execute System.Action The execute delegate.
canExecute Func The can execute delegate.
return DataWindowButton
        public static DataWindowButton FromSync(string text, Action execute, Func<bool> canExecute = null)
        {
            return new DataWindowButton(text, new Command(execute, canExecute));
        }

Same methods

DataWindowButton::FromSync ( string text, System.Action execute, Func canExecute = null, string contentBindingPath = null, IValueConverter contentValueConverter = null, string visibilityBindingPath = null, IValueConverter visibilityValueConverter = null ) : DataWindowButton

Usage Example

Example #1
0
        /// <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();
            }
        }