commands in wpf

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.

Upload: abhi

Post on 06-Apr-2018

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 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.

Page 2: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 2/11

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.

Page 3: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 3/11

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.

Page 4: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 4/11

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.

Page 5: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 5/11

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.

Page 6: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 6/11

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

Page 7: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 7/11

Introduction

In Part I of this article series we have seen the basics of using Commands. In this article wewill 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:

Page 8: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 8/11

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 fordisplaying 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.

Page 9: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 9/11

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 experiencedCommand 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.

Page 10: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 10/11

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:

Page 11: Commands in WPF

8/2/2019 Commands in WPF

http://slidepdf.com/reader/full/commands-in-wpf 11/11

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.