WPF: un TextBox qui a un événement qui se déclenche lorsque vous appuyez sur la touche Entrée

Au lieu d'attacher une PreviewKeyUp événement chaque TextBox dans mon application et vérifier si la touche est la touche Entrée, puis faire une action, j'ai décidé de mettre en œuvre version étendue d'un TextBox qui comprend un DefaultAction événement qui se déclenche lorsque la Touche Entrée est enfoncée dans un TextBox.

Ce que j'ai fait était de créer une nouvelle Classe qui s'étend de TextBox avec un événement public DefaultActioncomme tel:

public class DefaultTextBoxControl:TextBox
{
    public event EventHandler<EventArgs> DefaultAction = delegate { };

    public DefaultTextBoxControl()
    {
        PreviewKeyUp += DefaultTextBoxControl_PreviewKeyUp;
    }

    void DefaultTextBoxControl_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (e.Key != Key.Enter)
        {
            return;
        }
        DefaultAction(this, EventArgs.Empty);
    }
}

Je puis utiliser cette coutume zone de texte à partir de mon application comme tel (xaml):

<Controls:DefaultTextBoxControl  DefaultAction="DefaultTextBoxControl_DefaultAction">
</Controls:DefaultTextBoxControl>

Maintenant, dans mon peu d'expérience que j'ai eu dans l'apprentissage de WPF, j'ai réalisé que presque la plupart du temps, il est plus "cool" (et, espérons-le plus facile) pour mettre en œuvre les choses

...donc ma question est, Comment puis-je améliorer le contrôle ci-dessus? Ou peut-être est-il un autre moyen que je peux faire la commande ci-dessus? ...peut-être en utilisant seulement déclarative de code au lieu de deux déclarative (xaml) et procédural (C#) ?

source d'informationauteur Andreas Grech