示例#1
0
        private void refreshButtonCommands()
        {
            if (TabControl == null)
            {
                return;
            }
            List <ButtonBase> customButtons = ControlTreeHelper.FindChildrenOfType <ButtonBase>(TabControl as DependencyObject, 12);

            if (customButtons != null)
            {
                foreach (ButtonBase btn in customButtons)
                {
                    ICommand cmd = btn.Command;
                    if (cmd != null)
                    {
                        cmd.CanExecuteChanged -= cmd_CanExecuteChanged;
                        cmd.CanExecuteChanged += cmd_CanExecuteChanged;
                        btn.Command            = null;
                        btn.Command            = cmd;
                        ToggleButton toggleButton = btn as ToggleButton;
                        if (toggleButton != null)
                        {
                            IToggleCommand toggleButtonCmd = cmd as IToggleCommand;
                            if (toggleButtonCmd != null)
                            {
                                toggleButton.IsChecked = toggleButtonCmd.IsChecked();
                            }
                        }
                    }
                }
            }
        }
示例#2
0
        public override void Execute(object parameter)
        {
            if (!CanExecute(parameter))
            {
                return;
            }

            var popupInfo = PopupInfo as OnClickPopupInfo;

            if (popupInfo == null)
            {
                return;
            }

            InfoWindow win = popupInfo.Container as InfoWindow;

            if (win != null)
            {
                Dispatcher.BeginInvoke(() =>
                {
                    try
                    {
                        FeatureLayer featureLayer = popupInfo.PopupItem.Layer as FeatureLayer;
                        if (featureLayer == null)
                        {
                            return;
                        }

                        FeatureDataForm form = new FeatureDataForm
                        {
                            Width  = win.ActualWidth,
                            Height = win.ActualHeight,
                            Style  = PopupFeatureDataFormStyleHelper.Instance.GetStyle("PopupFeatureDataFormStyle"),
                            CommitButtonContent = Resources.Strings.Apply,
                            GraphicSource       = popupInfo.PopupItem.Graphic,
                            FeatureLayer        = featureLayer,
                            DataContext         = popupInfo,
                        };

                        form.Loaded += (s, e) =>
                        {
                            // enable switching back to the original popup content when the 'Back' button is clicked
                            List <Button> buttons = ControlTreeHelper.FindChildrenOfType <Button>(form, int.MaxValue);
                            if (buttons != null && buttons.Count > 0)
                            {
                                Button backButton = buttons.Where(b => b.Name == "BackButton").FirstOrDefault();
                                if (backButton != null)
                                {
                                    backButton.Content = Resources.Strings.EditValuesCommandEditorBackButtonContent;
                                    backButton.Click  += (ss, ee) => BackToOriginalContent(popupInfo);
                                }
                                Button closeButton = buttons.Where(b => b.Name == "CloseButton").FirstOrDefault();
                                if (closeButton != null)
                                {
                                    closeButton.Click += (ss, ee) => BackToOriginalContent(popupInfo);
                                }
                            }
                            PopupHelper.SetDisplayMode(PopupHelper.DisplayMode.EditValues);
                        };
                        win.Content = null;
                        win.Content = form;
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex);
                    }
                });
            }
        }