2010-03-26 3 views

Répondre

1

http://www.devx.com/dotnet/Article/34644/1954:

Vous pouvez désactiver les commandes activée par défaut en ajoutant un CommandBinding. Dans l'extrait ci-dessous, l'attribut CanExecute fait référence à un gestionnaire d'événements qui peuvent intégrer une logique pour empêcher la commande d'exécution:

<RichTextBox.CommandBindings> 
    <CommandBinding 
     Command="EditingCommands.ToggleBold" 
     CanExecute="BlockTheCommand"/> 
    </RichTextBox.CommandBindings> 

Le gestionnaire d'événements correspondant dans le répertoire C# fichier code-behind définit deux propriétés sur la objet d'événement. La définition de CanExecute sur false permet aux composants liés à l'événement de savoir que cette option n'est pas disponible actuellement. Dans ce cas, pour bloquer la commande ToggleBold, la définition de CanExecute sur false désactive le bouton Gras de la barre d'outils qui apparaît désactivé. La deuxième propriété, Handled, empêche la commande ToggleBold d'être acheminé vers le RichTextBox:

protected void BlockTheCommand(object sender, 
    CanExecuteRoutedEventArgs e) 
    { 
    e.CanExecute = false; 
    e.Handled = true; 
    } 

Si vous choisissez d'intégrer une logique complexe dans vos gestionnaires de CanExecute, garder à l'esprit que cet événement est congédié souvent, parce que l'interface utilisateur vérifie et re-vérifie constamment pour voir si la commande est disponible. Si vous devez accéder à des ressources telles qu'une base de données ou un service Web pour déterminer si la commande doit être disponible, veillez à mettre en cache la ressource et à ne la vérifier que périodiquement, sinon elle détruira vos performances.

Questions connexes