0% found this document useful (0 votes)
130 views

Commands in WPF

The document discusses commands in WPF across three parts. In Part I, it introduces commands, shows how to add command bindings to buttons to enable copy, cut, and paste functionality in a sample application. Part II explores command system concepts like command objects, input bindings, command sources and targets. It demonstrates command bindings by showing a properties button that displays a message box when clicked. Part III removes the properties button and instead uses an input binding to trigger the same command via the ALT+ENTER keyboard shortcut.

Uploaded by

Abhi
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views

Commands in WPF

The document discusses commands in WPF across three parts. In Part I, it introduces commands, shows how to add command bindings to buttons to enable copy, cut, and paste functionality in a sample application. Part II explores command system concepts like command objects, input bindings, command sources and targets. It demonstrates command bindings by showing a properties button that displays a message box when clicked. Part III removes the properties button and instead uses an input binding to trigger the same command via the ALT+ENTER keyboard shortcut.

Uploaded by

Abhi
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 11

Commands in WPF: Part I

Introduction In this article we will see what Commands are and how we can use them in WPF. Commands It is often helpful to focus on what the user wants our application to do. WPF supports this through the command abstraction - a command is an action the application performs at the user's request. WPF's command system lets us treat them as different expressions of the same command. The command system lets a UI element provide a single handler for a command, reducing clutter and improving the clarity of your code. The way in which a command is invoked isn't usually important. Whether the user presses Ctrl-C, selects the Edit -> Copy menu item, or clicks the Copy button on the toolbar, the application's response should be the same in each case: it should copy the current selection to the clipboard. So let's have a sample application that will describe the above described things. Creating a WPF Application Fire up Visual Studio 2008 and Create a WPF Application, name it as CommandsWPF.

Now let's have few controls that would fulfil our sample to understand Commands. Such as some Buttons displaying Copy, Cut, and Paste. And obviously a Text Box that would be the target where we can see the application working.

The following is the XAML for reference:

Now we will see how Commands can be applied to the respective Clipboard Buttons. Now run the application and see the output as, all the buttons are in disabled.

Even if you select the text nothing happens, that is because we haven't added the Target Control to handle. Add the CommandTarget property and set the Bindings as follows:

Now run the application and see how we have achieved the Clipboard Commands in Buttons.

As soon as you select the Text the Cut and Copy Buttons are enabled.

As soon as you perform the Copy or Cut Commands operation Paste Button is enabled.

By default TextBox has the Clipboard as ContextMenu, so even if we don't add commands in Buttons the Menu is displayed.

Hope this article helps for the beginning in Commands in WPF. In next part we will explore more.

Commands in WPF: Part II

Introduction In Part I of this article series we have seen the basics of using Commands. In this article we will explore more on that. Concepts of Command System There are five concepts related to Command System: 1. Command Object - An object identifying a particular Command, such as Copy or Paste. 2. Input Binding - An association between a particular input (e.g. CTRL+C) and a Command (e.g. Copy) 3. Command Source - The object that invoked the Command, such as a Button or Input Binding. 4. Command Target - The UI element that will be asked to execute the Command. 5. Command Binding - A declaration that a particular UI element knows how to handle a particular Command. Let's modify our Application a bit. As follows:

As you see above we have a Button that will display the properties when it is clicked. Remember that in Windows ALT+ENTER is the Command that will execute the Command for displaying Properties. Let's have implemented the concepts that we have just discussed about.

As you see from the above Code Display, we have a CommandBinding object that takes the argument as a Command. On Executed event handler we have just displayed a MessageBox. Let's run the application.

When we click on Properties Button the following Message Box is displayed.

So we can have our own display if we want to display our custom Properties Window in this event handler. Hope this article helps learning the CommandBinding concept.

Commands in WPF: Part III


Introduction In Part II of this article series we have seen the concepts of Commands and we experienced Command Binding feature. In this article we will see how Input Binding is helpful. As we discussed in our last article InputBinding is an association between a particular input and command. We will modify our Application such that without Button Click how we can call the Properties Command. So our UI will contain only the TextBox control, we would get rid of the Button that we used in our previous sample.

As you see above we have only a TextBox control that doesn't have any Commands associated. Now in Code behind retain the CommandBinding. We have to just create an InputBinding object with the proper Command and KeyGestures. Follow the below code:

As you see above we have created the InputBinding object with ALT+ENTER as the KeyGesture. Now let's run the application and see by pressing the above key combination what happens.

And we have the Command successfully running on KeyGesture. Now we can have key combination of our choice and it will handle the Properties Command.

You might also like