Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Costruttore RoutedCommand

Inizializza una nuova istanza di RoutedCommand classe.

Spazio dei nomi:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)

public RoutedCommand()

In questo esempio viene mostrato come creare un oggetto RoutedCommand personalizzato e come implementare il comando personalizzato creando gli oggetti ExecutedRoutedEventHandler e CanExecuteRoutedEventHandler e associandoli a un oggetto CommandBinding. Per ulteriori informazioni sull'esecuzione di comandi, vedere Cenni preliminari sull'esecuzione di comandi.

Il primo passaggio della creazione di un oggetto RoutedCommand consiste nella definizione e nella creazione di un'istanza per il comando.


public static RoutedCommand CustomRoutedCommand = new RoutedCommand();


Per utilizzare il comando in un'applicazione, è necessario creare gestori eventi che definiscono le operazioni eseguite dal comando


		Private Sub ExecutedCustomCommand(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
			MessageBox.Show("Custom Command Executed")
		End Sub



private void ExecutedCustomCommand(object sender,
    ExecutedRoutedEventArgs e)
{
    MessageBox.Show("Custom Command Executed");
}



		' CanExecuteRoutedEventHandler that only returns true if
		' the source is a control.
		Private Sub CanExecuteCustomCommand(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
			Dim target As Control = TryCast(e.Source, Control)

			If target IsNot Nothing Then
				e.CanExecute = True
			Else
				e.CanExecute = False
			End If
		End Sub



// CanExecuteRoutedEventHandler that only returns true if
// the source is a control.
private void CanExecuteCustomCommand(object sender, 
    CanExecuteRoutedEventArgs e)
{
    Control target = e.Source as Control;

    if(target != null)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}


Successivamente, viene creato un oggetto CommandBinding che associa il comando ai gestori eventi. L'oggetto CommandBinding viene creato in un oggetto specifico. Questo oggetto definisce l'ambito dell'oggetto CommandBinding nella struttura ad albero dell'elemento


<Window x:Class="SDKSamples.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSamples"
    Height="600" Width="800"
    >
  <Window.CommandBindings>
    <CommandBinding Command="{x:Static custom:Window1.CustomRoutedCommand}"
                    Executed="ExecutedCustomCommand"
                    CanExecute="CanExecuteCustomCommand" />
  </Window.CommandBindings>



			Dim customCommandBinding As New CommandBinding(CustomRoutedCommand, AddressOf ExecutedCustomCommand, AddressOf CanExecuteCustomCommand)

			' attach CommandBinding to root window
			Me.CommandBindings.Add(customCommandBinding)



CommandBinding customCommandBinding = new CommandBinding(
    CustomRoutedCommand, ExecutedCustomCommand, CanExecuteCustomCommand);

// attach CommandBinding to root window
this.CommandBindings.Add(customCommandBinding);


L'ultimo passaggio consiste nel richiamare il comando. Un modo per richiamare un comando consiste nell'associarlo a un oggetto ICommandSource, ad esempio un oggetto Button.


<StackPanel>
  <Button Command="{x:Static custom:Window1.CustomRoutedCommand}"
          Content="CustomRoutedCommand"/>
</StackPanel>



			' create the ui
			Dim CustomCommandStackPanel As New StackPanel()
			Dim CustomCommandButton As New Button()
			CustomCommandStackPanel.Children.Add(CustomCommandButton)

			CustomCommandButton.Command = CustomRoutedCommand



// create the ui
StackPanel CustomCommandStackPanel = new StackPanel();
Button CustomCommandButton = new Button();
CustomCommandStackPanel.Children.Add(CustomCommandButton);

CustomCommandButton.Command = CustomRoutedCommand;


Quando si fa clic sull'oggetto Button, viene chiamato il metodo Execute sull'oggetto RoutedCommand personalizzato. L'oggetto RoutedCommand genera gli eventi indirizzati PreviewExecuted e Executed. Questi eventi attraversano la struttura ad albero dell'elemento alla ricerca di un oggetto CommandBinding per questo comando particolare. Se viene individuato un oggetto CommandBinding, viene chiamato l'oggetto ExecutedRoutedEventHandler associato a CommandBinding.

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft