J'ai eu un bon problème avec les langages dans WPF. Il se trouve que, par défaut, WPF est en "en-US" et non "CurrentCulture". Donc si vous avez des problèmes avec les décimales et autres trucs dépendant de la culture, inscrivez la définition suivante dans App.xaml.cs:
FrameworkElement.LanguageProperty.OverrideMetadata( typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
Avec le modèle MVVM, les commandes sont situées dans le ViewModel avec les propriétés. La façon de faire est de faire un Binding sur la propriété « Command » d’un contrôle. Mais qu’est-ce qu’on fait si on veut utiliser un autre évènement que celui qui est attitré à la propriété Command? Par exemple, sur un bouton la propriété « Command » est liée à « Click ». Si on veut utiliser par exemple MouseMove, est-on obligé de le faire dans le CodeBehind du UI? Et bien la réponse est : « Non ». On peut faire les choses dans les règles de l’art de MVVM. C’est ce qui est décrit dans ce qui suit.
[Plus]
Lorsqu'on met l'attribut de validation StringLength sur une propriété qui est liée à un TextBox, on peut désirer que la propriété MaxLength du TextBox soit automatiquement placée à cette valeur. De cette façon, au lieu d'avoir un message d'erreur lorsque le nombre de caractères excède le maximum, l'usager ne peut tout simplement pas entrer plus de caractères que le maximum.
[Plus]
La grille d’Infragistics est une des plus performantes et complètes sur le marché. Il est donc normal que plusieurs de nos clients l’utilisent. Le seul inconvénient c’est que pour l’intégration à WPF, Infragistics prend en charge le « Binding » et empêche souvent les stratégies standards MVVM. Ce qui suit démontre une problématique courante ainsi que la façon de régler le problème.
[Plus]
La classe MarkupExtension sert à retourner une valeur pour une propriété d’un objet en XAML. Dans l’interface en XAML, on peut mettre une propriété égale à quelque chose qui dérive de MarkupExtension au lieu de lui assigner une valeur. Par exemple, la propriété Text d’un TextBox à laquelle on assigne normalement une chaine de caractères ou bien une ressource statique peut à la place être assignée à une classe qui dérive de MarkupExtension. D’ailleurs, la classe Binding peut être assignée à une propriété en XAML à cause que BindingBase dérive de MarkupExtension.
[Plus]