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 :
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 :
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
Partager