[英]How to unlock button function after pressing a button?
在WPF中啟用和禁用按鈕的一種方法是使用RoutedCommands而不是click_events。 有四個步驟:
1)為您正在使用的每個按鈕分配一個靜態資源,作為父UI元素上的資源。 假設您有一個網格作為這些按鈕的父級:
<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)將Static資源分配為所需的Button命令:
<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,它定義按鈕是啟用還是禁用...
因此,回答您的問題...如果要在按下按鈕B后解鎖(啟用)按鈕A,請在方法buttonB_Executed的末尾設置一個等於true的布爾標志isButtonBpressed,然后在按鈕A_CanExecute方法中設置e。 CanExcute = isButtonBpressed;
一開始它可能看起來很復雜,但是如果您掌握了它,那就很簡單了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.