Probleme Binding wpf [Résolu]

Messages postés
327
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
13322
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 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 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
29
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

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

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

Whismeril
Messages postés
13322
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
27 mai 2019
275 -
Merci Sebmafate, presque 10 ans après tu me sauves, une fois de plus.
Commenter la réponse de sebmafate
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
21
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
327
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
8
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
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
21
0
Merci
Le format est déclaré comment.
Commenter la réponse de nhervagault
Messages postés
327
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
8
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