• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Databinding and Commands

  • Thread starter Corrado Cavalli [MVP]
  • Start date
C

Corrado Cavalli [MVP]

#1
Working on May CTP...

I'm trying to bind to a static class :

public static class MyCommands
{
public static RoutedCommand ClearAll;
static MyCommands ()
{
InputGestureCollection ic = new InputGestureCollection();
ic.Add(new KeyGesture(Key.P,ModifierKeys.Control));
ClearAll = new RoutedUICommand("ClearAll", "clear", typeof(Window1),ic);
}

public static string Name
{
get { return "ok"; }
}
}

And trying to use it on a Menuitem

<MenuItem Name="mi1" Command="c:MyCommands.ClearAll"" Header="x:Static
c:MyCommands.Name}" />

Everything works fine if i remove static operator on classe definition, any
idea why?


--
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - http://www.ugidotnet.org
Weblog: http://blogs.ugidotnet.org/corrado
 
?

=?Utf-8?B?VGhlUkhvZ3Vl?=

#2
There are RoutedCommand and ICommand samples in the SDK:
http://windowssdk.msdn.microsoft.com/en-us/library/ms771540.aspx

The negative with the link is that it takes you to a 72 megabyte download to
Beta 2 samples. The positive is that you get a lot of samples you can easily
search through to find code samples...the RoutedCommand sample built on the
latest WPF release.


The following syntax may be of interest to you:

<CommandBinding Command="{x:Static custom:Window1.ColorCmd}"
Executed="WindowColorCmdExecuted"
CanExecute="ColorCmdCanExecute"/>

If the architecture of routed command doesn't work, you will need to
implement an ICommand which is easy to do...and there is an SDK sample too :)

"Give a man a fish, and you feed him for a day. Teach a man to fish, and you
feed him for a lifetime." ...I think I prefer..."Learn to fish, and feed
yourself for a lifetime."


"Corrado Cavalli [MVP]" wrote:

> Working on May CTP...
>
> I'm trying to bind to a static class :
>
> public static class MyCommands
> {
> public static RoutedCommand ClearAll;
> static MyCommands ()
> {
> InputGestureCollection ic = new InputGestureCollection();
> ic.Add(new KeyGesture(Key.P,ModifierKeys.Control));
> ClearAll = new RoutedUICommand("ClearAll", "clear", typeof(Window1),ic);
> }
>
> public static string Name
> {
> get { return "ok"; }
> }
> }
>
> And trying to use it on a Menuitem
>
> <MenuItem Name="mi1" Command="c:MyCommands.ClearAll"" Header="x:Static
> c:MyCommands.Name}" />
>
> Everything works fine if i remove static operator on classe definition, any
> idea why?
>
>
> --
> Corrado Cavalli [Microsoft .NET MVP-MCP]
> UGIdotNET - http://www.ugidotnet.org
> Weblog: http://blogs.ugidotnet.org/corrado
>
>
>
>
>
>