Bonjour.
Je suis sur le développement d'un petit Framework maison pour d'une part concevoir des outils pratique mais surtout faire un peu de veille techno pour m'améliorer.
Bien que sur du C#, je pense que la question qui va suivre peux aussi bien concerner VB.net.
Je possède une class lambda possédant plusieurs DependencyProperty. Chacune d'entre elle est en faite la configuration d'une touche du clavier pour une action bien définie.
J'ai commencé à développer sur la première idée ci-dessous suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public static readonly DependencyProperty Action1Property = DependencyProperty.Register("Action1", typeof(InputGesture), typeof(Lambda), new PropertyMetadata(null, Action1Callback)); public InputGesture Action1 { get { return (InputGesture)GetValue(Action1Property); } set { SetValue(Action1Property, value); } }
- Un Dictionary<Action, InputGesture> afin de lister mes actions (une action étant unique) et son InputGesture associé.
L'idée était de m'attaché au KeyPress une seul fois et d’exécuter les actions selon les InputGesture configuré et la touche entrée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part private Dictionary<Action, InputGesture> ActionInputGestureHandler;
Bien évidement ma méthode passerais par du Linq afin de trouver dans mon dictionnaire les actions à exécuter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActionInputGestureHandler.Any(k => k.Value.Key == key);- Une autre solution à laquelle je pensais était de m'abonner autant de fois au KeyPress qu'il y ai d'action configurée.
Du coup exit l'idée du Dictionary et un seul If pour savoir la touche correspond à la configuration de chacune des actions.
Cela implique bien plus de code mais peut-être une meilleur gestion du Thread si je ne me trompe pas.
J'avoue ne pas trop savoir les ressources et performances que cela implique dans les deux cas.
Partager