Utilisation d'un exemple d'évenement
Bonjour à tous,
débutant en Silverlight, j'essaie d'utiliser un évement simple se respectant le modèle MVVM.
Cet exemple que j'ai trouvé sur le Net correspond bien à mon besoin initial de mettre en majuscule le texte d'une textbox au fur à mesure de la saisie.
Ce code se découpe de la facon suivante :
Création d'une classe cConverter.cs contenant le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Interactivity;
namespace slnMySolution
{
public class cConverters
{
}
public class UpperCaseAction : TriggerAction<TextBox>
{
protected override void Invoke(object parameter)
{
var selectionStart = AssociatedObject.SelectionStart;
var selectionLenght = AssociatedObject.SelectionLength;
AssociatedObject.Text = AssociatedObject.Text.ToUpper();
AssociatedObject.SelectionStart = selectionStart;
AssociatedObject.SelectionLength = selectionLenght;
}
}
} |
Ensuite coté XAML, je dois inscrire le code suivant pour déclendcher l'évenement lors du changement de texte dans ma textbox...
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<Grid x:Name="LayoutRoot" Background="White">
<TextBox TextWrapping="Wrap" VerticalAlignment="Top" Margin="10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="TextChanged">
<i:InvokeCommandAction Command="UpperCaseAction"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
</Grid> |
et donc le Code behind à implémenter :
Code:
1 2 3
| System.Windows.Interactivity.EventTrigger eventTrigger = new System.Windows.Interactivity.EventTrigger("TextChanged");
eventTrigger.Actions.Add(new UpperCaseAction());
System.Windows.Interactivity.Interaction.GetTriggers(myTextBox).Add(eventTrigger); |
Mon seul problème se situe dans la dernière partie de code, je n'ai aucune idée de la manière de l'utiliser (ou, pourquoi?).
Je cherche donc une explication plus détaillée de cet exemple.
Merci pour vos réponses.:ccool:
Seb