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

Classe RoutedCommand

definisce un comando che implementa ICommand e viene indirizzato mediante la struttura ad albero di elementi.

Spazio dei nomi:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[TypeConverterAttribute("System.Windows.Input.CommandConverter, PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, Custom=null")]
public class RoutedCommand : ICommand
<object property="predefinedCommandName"/>- oppure -<object property="predefinedClassName.predefinedCommandName"/>- oppure -<object property="{x:Static customClassName.customCommandName}"/>

Valor XAML

predefinedClassName

Una delle classi predefinite del comando.

predefinedCommandName

Uno dei controlli predefiniti.

customClassName

una classe personalizzata che contiene il comando personalizzato. Le classi personalizzate richiedono in genere xlmns mapping del prefisso; vedere Spazi dei nomi XAML e mapping dello spazio dei nomi per XAML WPF.

customCommandName

un comando personalizzato.

Il tipo RoutedCommand espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoRoutedCommand()Inizializza una nuova istanza di RoutedCommand classe.
Metodo pubblicoRoutedCommand(String, Type)Inizializza una nuova istanza di RoutedCommand classe con il nome e il tipo specificato proprietario.
Metodo pubblicoRoutedCommand(String, Type, InputGestureCollection)Inizializza una nuova istanza di RoutedCommand classe il nome, il tipo proprietario e la raccolta specificati di movimenti.
In alto

  NomeDescrizione
Proprietà pubblicaInputGesturesottiene la raccolta di InputGesture oggetti associati al comando.
Proprietà pubblicaNameOttiene il nome del comando.
Proprietà pubblicaOwnerTypeOttiene il tipo registrata con il comando.
In alto

  NomeDescrizione
Metodo pubblicoCanExecutedetermina se questo RoutedCommand è possibile eseguire nello stato corrente.
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoExecuteesegue RoutedCommand nella destinazione comando corrente.
Metodo protettoFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

  NomeDescrizione
Evento pubblicoCanExecuteChangedSi verifica quando le modifiche all'origine comando vengono rilevate dall'amministratore del comando. Effetti di queste modifiche spesso se il comando deve eseguire sulla destinazione comando corrente.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoICommand.CanExecutePer una descrizione di tali membri, vedere CanExecute.
Implementazione esplicita dell'interfacciaMetodo privatoICommand.ExecutePer una descrizione di tali membri, vedere Execute.
In alto

Execute e CanExecute metodi in una classe RoutedCommand non contengono la logica dell'applicazione per il comando come nel caso di un tipico ICommand, ma piuttosto, questi metodi generano eventi che attraversano la struttura ad albero di elementi che cerca un oggetto con un oggetto CommandBinding. I gestori eventi associati a CommandBinding contengono la logica di comando.

Execute il metodo genera un'eccezione PreviewExecuted e Executed eventi. CanExecute il metodo genera un'eccezione PreviewCanExecute e CanExecute eventi.

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.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft