Bonjour,
J'essaye de créer des template controls. J'ai cependant un soucis et je ne sais pas trop comment le résoudre.
Le but ici est de créer une textbox numérique. Ainsi j'aimerai pouvoir spécifier le nombre de chiffre de la partie entière et décimale. Pour cela j'ai créé des dependency properties. Voici les parties pertinentes de code.
Generic.xaml
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <Style TargetType="local:Test"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:Test"> <TextBox /> </ControlTemplate> </Setter.Value> </Setter> </Style>
Test.cs
Mon appel au control
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public static readonly DependencyProperty DecimalCountProperty = DependencyProperty.Register("DecimalCount", typeof(short), typeof(Test), new PropertyMetadata((short)2)); public short DecimalCount { get { return (short)GetValue(DecimalCountProperty); } set {SetValue(DecimalCountProperty, value);} }
Mon soucis se passe à l’exécution. L'affectation DecimalCount="3" soulève une exception Impossible de créer un System.Int16 à partir du texte '3'.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <myCustomsCtrl:Test Width="100" Height="23" DecimalCount="3"></myCustomsCtrl:Test>
Comment faire pour que cette affectation DecimalCount="3" fonctionne?
Avec les casts appropriés et en mettant la propriété DecimalCount de type Object, l'affectation fonctionne mais n'y a-t-il pas une autre solution?
Merci
Partager