Bonjour,

J'aimerais ajouter de manière dynamique un trigger sur chacune des TextBox de mon formulaire binder dynamiquement à une variable afin que le fond deviennent rouge si la valeur qu'elle contient dépasse une limite.

Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
  TextBox l_OutputElement  = (TextBox)FindName(p_ElementToBind);
  Binding l_BindingTrigger    = new Binding();
  l_BindingTrigger.Mode       = BindingMode.OneWay;
  l_BindingTrigger.Source     = l_OutputVariable ;
  l_BindingTrigger.Path        = new PropertyPath("BeyondMaximum");
 
  DataTrigger l_ErrorTrigger  = new DataTrigger();
  l_ErrorTrigger.Binding        = l_BindingTrigger;
  l_ErrorTrigger.Value         = true;
 
  l_ErrorTrigger.Setters.Add(new Setter()
  {
      Property = TextBox.BackgroundProperty,
      Value = ColorConverter.ConvertFromString("Red")
   });
 
 
 l_OutputElement.Style = new Style(typeof(TextBox));
 l_OutputElement.Style.Triggers.Add(l_ErrorTrigger);
Seulement au moment de faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
l_OutputElement.Style.Triggers.Add(l_ErrorTrigger);
Une exception est levée. En cherchant dans les sous classes j'ai trouvé que l'exception correspond à :

After a 'TriggerCollection' is in use (sealed), it cannot be modified.
Comment faire pour déscellé la collection ou pour pouvoir ajouter un trigger dynamiquement ?

Merci