Кнопка отключения WPF с использованием IsEnabled = "False" не работает в коде - PullRequest
0 голосов
/ 23 мая 2019

Я работаю над проектом с графическим интерфейсом, моя проблема связана с отключением кнопки отправки.GUI - это мастер, и на некоторых страницах может быть несколько кнопок отправки.

Всякий раз, когда пользователь нажимает на любую кнопку «Отправить», будут выполняться некоторые проверки, и, если все в порядке, будет включено следующее поле ввода (поскольку оно отключено по умолчанию в XAML).когда пользователь изменяет текст второго поля ввода, его кнопка «Отправить», выделенная для этого поля ввода, будет включена.

Чтобы убедиться, что пользователь не сделает что-то не так, я хочу отключить первую кнопку «Отправить», когдапользователь изменяет текст второго поля ввода.

В этот момент, когда пользователь изменяет текст поля ввода, соответствующая кнопка отправки автоматически включается без проблем, но предыдущая кнопка отправки не получаетотключен.

Ниже приведен PIC одной из страниц, и, как вы можете видеть, вторая кнопка отправки включается, но первая не отключается.

enter image description here

Мой код выглядит следующим образом:

       #    Main Page Input Boxes.  
            #   Enable Submit Buttons.
        $Global:GuiHash.WizardMainPageInputBox1.Add_TextChanged({$Global:GuiHash.WizardMainPageSubmitButton1.IsEnabled="True"})
        $Global:GuiHash.WizardMainPageInputBox2.Add_TextChanged({$Global:GuiHash.WizardMainPageSubmitButton2.IsEnabled="True"})
        $Global:GuiHash.WizardMainPageInputBox3.Add_TextChanged({$Global:GuiHash.WizardMainPageSubmitButton3.IsEnabled="True"})
            #   Clear default text from the box and disable priviouse submit buttons.
        $Global:GuiHash.WizardMainPageInputBox1.Add_GotFocus({If ($Global:GuiHash.WizardMainPageInputBox1.Text -eq "NSX Manager FQDN:") {$Global:GuiHash.WizardMainPageInputBox1.Dispatcher.Invoke([action]{$Global:GuiHash.WizardMainPageInputBox1.Text = ""})}})
        $Global:GuiHash.WizardMainPageInputBox2.Add_GotFocus({
            Wait-Debugger
            If ($Global:GuiHash.WizardMainPageInputBox2.Text -eq "NSX Manager Admin Password:") {$Global:GuiHash.WizardMainPageInputBox2.Dispatcher.Invoke([action]{$Global:GuiHash.WizardMainPageInputBox2.Text = ""})}
            $Global:GuiHash.WizardMainPageSubmitButton1.IsEnabled="False"
        })
        $Global:GuiHash.WizardMainPageInputBox3.Add_GotFocus({If ($Global:GuiHash.WizardMainPageInputBox3.Text -eq "Output folder path:") {$Global:GuiHash.WizardMainPageInputBox3.Dispatcher.Invoke([action]{$Global:GuiHash.WizardMainPageInputBox3.Text = ""}); $Global:GuiHash.WizardMainPageSubmitButton2.IsEnabled= "False"}})

Когда я пытаюсь отладить это с помощью debug-runspace, я не получаю никакой ошибки в строке кода, где он должен отключить отправкукнопка.

Строка кода для отключения кнопки отправки:

$Global:GuiHash.WizardMainPageSubmitButton1.IsEnabled="False"

Отладка пробелов:

PS C:\Users\Administrator> Debug-Runspace Runspace11
Debugging Runspace: Runspace11
To end the debugging session type the 'Detach' command at the debugger prompt, or type 'Ctrl+C' otherwise.

Stopped at: If ($Global:GuiHash.WizardMainPageInputBox2.Text -eq "NSX Manager Admin Password:") {$Global:GuiHash.WizardMainPageInputBox2.Dispatcher.Invoke([action]{$Global:GuiHash.WizardMainPageInputBox2.Text = ""})}
[DBG]: [Process:7116]: [Runspace11]: PS C:\Users\Administrator>> 
Stopped at: If ($Global:GuiHash.WizardMainPageInputBox2.Text -eq "NSX Manager Admin Password:") {$Global:GuiHash.WizardMainPageInputBox2.Dispatcher.Invoke([action]{$Global:GuiHash.WizardMainPageInputBox2.Text = ""})}
[DBG]: [Process:7116]: [Runspace11]: PS C:\Users\Administrator>> 
Stopped at: $Global:GuiHash.WizardMainPageSubmitButton1.IsEnabled="False"
[DBG]: [Process:7116]: [Runspace11]: PS C:\Users\Administrator>> 
Stopped at: })
[DBG]: [Process:7116]: [Runspace11]: PS C:\Users\Administrator>> 

1 Ответ

0 голосов
/ 23 мая 2019

Благодаря Эду Планкетту, основываясь на его комментарии, мне нужно использовать ложное утверждение $ False вместо использования строки.изменение моего кода ниже работает как шарм.Спасибо Эд.

$Global:GuiHash.WizardMainPageSubmitButton1.IsEnabled=$False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...