Button CommandTarget Binding : Command « Windows Presentation Foundation « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Date Time
8.Development
9.Event
10.File Directory
11.Generics
12.GUI
13.Internationalization I18N
14.Language Basics
15.LINQ
16.Network Remote
17.Reflection
18.Security
19.Thread
20.Windows Presentation Foundation
21.Windows System
22.XML
23.XML LINQ
VB.Net » Windows Presentation Foundation » Command 




Button CommandTarget Binding
Button CommandTarget Binding
    


<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:WpfApplication1"
    Title="Custom RoutedCommand Sample"
    Name="RootWindow" Height="500" Width="600"
    Focusable="True">
  <Window.CommandBindings>
    <CommandBinding Command="{x:Static custom:Window1.ColorCmd}"
                    Executed="ColorCmdExecuted"
                    CanExecute="ColorCmdCanExecute"/>
  </Window.CommandBindings>
  <DockPanel>
    <Menu DockPanel.Dock="Top" Height="25">
      <MenuItem Header="Commands">
        <MenuItem Header="Color Command" Command="{x:Static custom:Window1.ColorCmd}" />
      </MenuItem>
    </Menu>
    <Border BorderBrush="Black" BorderThickness="1" Margin="10"
            Height="165" Width="250" DockPanel.Dock="Top">
      <TextBlock TextWrapping="Wrap" Margin="3">
        a
        <LineBreak/>
        b
        <LineBreak/>
        <LineBreak/>
        c
        <LineBreak/>
      </TextBlock>
    </Border>
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" DockPanel.Dock="Bottom">
      <Border BorderBrush="Black" BorderThickness="1" Height="200" Width="200">
        <StackPanel Name="FirstStackPanel" Background="AliceBlue" Focusable="True">
          <StackPanel.CommandBindings>
            <CommandBinding Command="{x:Static custom:Window1.ColorCmd}" Executed="ColorCmdExecuted" CanExecute="ColorCmdCanExecute"/>
          </StackPanel.CommandBindings>

          <Label>StackPanel</Label>

          <Button Command="{x:Static custom:Window1.ColorCmd}"
                  CommandParameter="ButtonOne"
                  CommandTarget="{Binding ElementName=FirstStackPanel}" 
                  Content="CommandTarget = FristStackPanel" />
        </StackPanel>
      </Border>
      <Border BorderBrush="Black" BorderThickness="1" Height="200" Width="200">
        <StackPanel Background="AliceBlue" Focusable="True">
          <Label>Second StackPanel</Label>
        </StackPanel>
      </Border>
    </StackPanel>
  </DockPanel>
</Window>

//File:Window.xaml.vb


Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Input


Namespace WpfApplication1
  Public Partial Class Window1
    Inherits Window
    Public Shared ColorCmd As New RoutedCommand()
    Public Sub New()
      InitializeComponent()
    End Sub
    Private Sub ColorCmdExecuted(sender As Object, e As ExecutedRoutedEventArgs)
      Dim target As Panel = TryCast(e.Source, Panel)
      If target IsNot Nothing Then
        If target.Background Is Brushes.AliceBlue Then
          target.Background = Brushes.Red
        Else
          target.Background = Brushes.AliceBlue
        End If
      End If
    End Sub
    Private Sub ColorCmdCanExecute(sender As Object, e As CanExecuteRoutedEventArgs)
      If TypeOf e.Source Is Panel Then
        e.CanExecute = True
      Else
        e.CanExecute = False
      End If
    End Sub
  End Class
End Namespace

   
    
    
    
  














Related examples in the same category
1.Invoking Copy command with a ButtonInvoking Copy command with a Button
2.Creating CommandBinding and attaching an Executed and CanExecute handlerCreating CommandBinding and attaching an Executed and CanExecute handler
3.Command Handler Command Binding in XamlCommand Handler Command Binding in Xaml
4.Property changed callbackProperty changed callback
5.Using CommandBinding and ExecutedRoutedEventHandler to bind Application event to an event handler methodUsing CommandBinding and ExecutedRoutedEventHandler to bind Application event to an event handler method
6.Create CommandBindings in Xaml and bind to ButtonCreate CommandBindings in Xaml and bind to Button
7.Bind TextBox save command to CommandBindingBind TextBox save command to CommandBinding
8.Press F1 to get helpPress F1 to get help
9.Help commandHelp command
10.Command EnablingCommand Enabling
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.