CommandManager.AddCanExecuteHandler Method (UIElement, CanExecuteRoutedEventHandler)

 

Attaches the specified CanExecuteRoutedEventHandler to the specified element.

Namespace:   System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)

public static void AddCanExecuteHandler(
	UIElement element,
	CanExecuteRoutedEventHandler handler
)

Parameters

element
Type: System.Windows.UIElement

The element to attach handler to.

handler
Type: System.Windows.Input.CanExecuteRoutedEventHandler

The can execute handler.

Exception Condition
ArgumentNullException

element or handler is null.

The following example creates a CanExecuteRoutedEventHandler and an ExecutedRoutedEventHandler and attaches them to a Button which is a command source for the Help command.

First, the Button is created and associated with the Help command.

<Button Command="ApplicationCommands.Help"
        Name="helpButton">Help</Button>

Next, the CanExecuteRoutedEventHandler and the ExecutedRoutedEventHandler are created.

private void HelpCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
    // OpenHelpFile opens the help file
    OpenHelpFile();
}
private void HelpCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    // HelpFilesExists() determines if the help file exists
    if (HelpFileExists() == true)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}

And finally, the handlers are attached to the Button using the AddCanExecuteHandler and AddExecutedHandler.

CommandManager.AddExecutedHandler(helpButton, HelpCmdExecuted);
CommandManager.AddCanExecuteHandler(helpButton, HelpCmdCanExecute);

.NET Framework
Available since 3.0
Return to top
Show: