【问题标题】:How to unlock button function after pressing a button?按下按钮后如何解锁按钮功能?
【发布时间】:2019-02-20 10:18:57
【问题描述】:

我尝试使用 WPF。我的问题是,按下按钮登录(1.)后是否有办法解锁按钮(2.)。基本上,如果有人按下例如,我希望弹出一个错误。 Excel-按钮,只要他没有登录。

【问题讨论】:

  • 您可以为此使用 MyButton.IsEnabled= false 属性
  • 您使用的是 MVVM 还是基于事件的?
  • 我猜是基于事件的。大多数按钮除了与点击事件处理程序一起使用的“beenden”和“excel”按钮外,没有任何功能
  • 好的,在这种情况下命名堆栈面板?或者通过在 XAML 中设置 Name="SomeName" 来设置按钮的任何控制,然后在您处理登录的事件中设置 IsEnabled ="False"(我猜是 ButtonClickEvent?)调用 SomeName.IsEnabled = True;这将在登录时启用所有按钮。但通常有更好的方法可以使用 Binding 来实现这一点,但我不确定你是否知道这个概念......?

标签: c# wpf button login


【解决方案1】:

在 WPF 中启用和禁用按钮的一种方法是使用 RoutedCommands 而不是 click_events。有 4 个步骤:

1) 为您正在使用的每个按钮分配一个静态资源,作为父 UI 元素上的资源。例如,假设您有一个 Grid 作为这些按钮的父级:

<Grid>
  <Grid.Resources>
      <RoutedCommand x:Key="cmdButtonCommandName" />
  </Grid.Resources>
  ...
</Grid>

2) 为同一父级下的每个命令定义一个 CommandBinding。代码变为:

<Grid>
  <Grid.Resources>
      <RoutedCommand x:Key="cmdButtonCommandName" />
  </Grid.Resources>
  <Grid.CommandBindings>
        <CommandBinding CanExecute="CmdButtonCommandName_CanExecute"
                    Command="{StaticResource cmdButtonCommandName}"
                    Executed="CmdButtonCommandName_Executed"/>
  </Grid.CommandBindings>
...
</Grid>

3) 将静态资源分配为所需按钮的命令:

<Button Content="Excel" Command="{StaticResource cmdButtonCommandName}"/>

4) 在后面的代码中添加方法 CmdButtonCommandName_CanExecute 和 CmdButtonCommandName_Executed

private void CmdButtonCommandName_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }

    private void CmdButtonCommandName_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        ...
    }

在那里你可以设置 e.CanExecute 来定义按钮是启用还是禁用...

所以,回答你的问题...如果你想在 buttonB 被按下后解锁(启用)buttonA,你在 buttonB_Executed 方法的末尾设置一个布尔标志 isButtonBpressed 等于 true,然后在 buttonA_CanExecute 方法中你设置 e.CanExcute = isButtonBpressed;

一开始可能看起来很复杂,但如果你掌握了窍门,那就很简单了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    相关资源
    最近更新 更多