Probleme Binding wpf [Résolu]

Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
- - Dernière réponse : Whismeril
Messages postés
13817
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 octobre 2019
- 3 déc. 2018 à 19:41
Bonjour à tous,
Je suis en train de créer un custom control wpf avec bien sur plusieurs Dependency Property.
Je rencontre un problème lors du binding sur une de ces propriétés de type decimal. Le binding fonctionne correctement (la valeur est bien affectée). Cependant les opérations qui doivent s'effectuer lors du changement de valeur ne s'effectue pas.
Après quelques recherches je ne comprends toujours pas d'où çà peut venir.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
1
Merci
Si j'ai bien compris ton code, il me semble qu'il manque quelque chose (et si ça marche comme en Silverlight).

Tu n'as pas déclaré de delegate sur le OnChange de ta valeur dans le UIPropertyMetadata.

Sébastien FERRAND
Consultant Sénior
Microsoft Visual C# MVP

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Whismeril
Messages postés
13817
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 octobre 2019
308 -
Merci Sebmafate, presque 10 ans après tu me sauves, une fois de plus.
Commenter la réponse de sebmafate
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
0
Merci
Salut

Comment est déclarée ta propriété, peux-tu mettre le code STP.
Commenter la réponse de nhervagault
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
0
Merci
public decimal Value
{
get { return (decimal)GetValue(ValueProperty); }
set
{
if (value == Value) return;

value = value.Limit(MinValue, MaxValue);
SetValue(ValueProperty, value);
Format();
}
}

public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register(
"Value",
typeof(decimal),
typeof(CurrencyTextBox),
new UIPropertyMetadata(decimal.Zero));
Commenter la réponse de cs_GG29
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
0
Merci
Le format est déclaré comment.
Commenter la réponse de nhervagault
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
0
Merci
Voila le code qui fonctionne

public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register(
"Value",
typeof(decimal),
typeof(CurrencyTextBox),
new UIPropertyMetadata(
decimal.Zero,
(sender, args) =>
{
var ctb = sender as CurrencyTextBox;
if (ctb == null) return;

ctb.Format();
}));
Commenter la réponse de cs_GG29