Probleme Binding wpf [Résolu]

Signaler
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
-
Messages postés
14475
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 juillet 2020
-
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.

5 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
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
Messages postés
14475
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
10 juillet 2020
420
Merci Sebmafate, presque 10 ans après tu me sauves, une fois de plus.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut

Comment est déclarée ta propriété, peux-tu mettre le code STP.
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
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));
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Le format est déclaré comment.
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
12
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();
}));