Создать кнопку переключения на панели инструментов

Я использую MS CRM и USD, где я предполагаю создать кнопку переключения, используя размещенный в WPF элемент управления. Я следовал за руководством здесь. Как бы я ни хотел изменить текст кнопки после нажатия.

1 ответ

Чтобы сделать буквально то, что вы описываете, может потребоваться больше усилий и сложности, чем разумной альтернативы, поэтому я хочу изучить обе эти возможности здесь.

Желаемый ответ: репликация поведения кнопки переключения на кнопках USD без кнопки переключения

  1. Установите для метки кнопки параметр $Context, например [[$Context.ToggleButtonText]]. Обязательно введите это значение в DesktopReady, используя действие CopyToContext вашего Global Manager. Мы будем использовать эту метку для определения состояния кнопки, поэтому предположим, что мы будем выдвигать значения "On" и "Off" только для этого параметра.
  2. Аналогично, установите параметр $Context, чтобы указать, изменяется ли кнопка, например [[$Context.ToggleButtonIsChanging]]. После DesktopReady установите для этого параметра значение false. Один и тот же Action Action может одновременно переместить и ToggleButtonText, и ToggleButtonIsChanging в $Context.
  3. Определите три вызова действий для нажатия кнопки. 3a. Первый вызов Action установит для ToggleButtonIsChanging значение true. 3b. Следующим двум призывам к действию должны быть присвоены имена, такие как "Toggle Button to Off" и "Toggle Button to On". Оба вызова действия не должны делать ничего, кроме выполнения проверки состояния, тем самым авторизуя или предотвращая запуск их подэтапов. (Подробнее об определении этих дополнительных действий.) Я рекомендую использовать действие Пауза глобального менеджера для выполнения паузы в 1 мс, когда условие выполнено. 3в. Чтобы кнопка "Отключить" была выключена, условие должно быть "[[$Context.ToggleButtonText]]"=="Вкл"&&[[$Context.ToggleButtonIsChanging]]. Чтобы кнопка "Переключатель" была включена, условие должно быть "[[$Context.ToggleButtonText]]"=="Выключено"&&[[$Context.ToggleButtonIsChanging]].
  4. Определите дополнительные действия для "Переключить кнопку в положение" Выкл "и" Переключить кнопку в положение "Вкл". 4а. Первый вызов действия (и, при необходимости, любое из его подэтапов) должен выполнить требуемую (ые) автоматизацию (и), которая соответствовала бы изменению состояния кнопки. Другими словами, то, что фактически делает кнопка, идет сюда. 4b. Второй Action Action должен завершить изменение состояния кнопки, нажав новые параметры $Context. В разделе "Переключить кнопку на Выкл" вы хотите, чтобы это действие установило для ToggleButtonText значение Выкл., А для ToggleButtonIsChanging - значение false. Под "Переключить кнопку на Вкл" вы хотите, чтобы это действие установило ToggleButtonText на Вкл, а ToggleButtonIsChanging на false.

Более простое предложение: отдельные кнопки с условиями видимости

  1. Определите две кнопки "Вкл" и "Выкл."
  2. После DesktopReady введите значение "Вкл." Или "Выкл." В [[$Context.ButtonState]].
  3. Определите условия видимости для обеих кнопок. Например, кнопка "Вкл" должна быть видимой, только если "[[$Context.ButtonState]]"=="Вкл"
  4. Определите автоматизации для обеих кнопок. Вам понадобится как минимум два Призыва к действию. 4а. Для каждой кнопки ваш первый вызов (и) действия должен определить желаемую автоматизацию. 4b. Самый последний вызов действия под каждой кнопкой должен перевести обратное значение в $Context. Например, последнее действие кнопки "Вкл" должно копировать CopyToContext ButtonState=Off.
Другие вопросы по тегам