2009-07-17 3 views
1

Dans mon code XAML, j'ai lié la propriété Height d'un contrôle à ActualHeight pour son contrôle parent. Parce que je dois calculer un décalage de la valeur d'origine que j'utilise et IValueConverter.WPF: Liaison de contrôle - Déclencheur IValueConverter à partir du code C#

Height="{Binding ElementName=MainCanvas, Path=ActualHeight, Converter={StaticResource adjustVerteilung} , ConverterParameter= 12}" 

Cela fonctionne très bien jusqu'à présent.

Après un événement, la formule dans ValueConverter change et génère une sortie différente. Mais les contrôles sont seulement actualisés et alignés après avoir redimensionné ma fenêtre. Est-il possible de dire au contrôle (à partir du code C#) de se rafraîchir et d'obtenir une nouvelle valeur de ValueConverter?

Répondre

1

Si vous ajoutez UpdateSourceTrigger = PropertyChanged à votre liaison, il doit se reconnecter à la valeur dès que la hauteur réelle est modifiée, et non après la redimensionnement de la fenêtre et l'actualisation des liaisons par MainCanvas.

0

Je pense que vous voulez changer la valeur même si ActualHeight ne change pas. AFAIK la fonction ValueConverter est pas conçu pour faire quelque chose comme ça.

Vous devriez essayer quelque chose de différent. Si c'est réellement la hauteur observée que vous souhaitez mettre à jour lorsque votre "certains événements" se produit, peut-être que vous pouvez essayer de construire un panneau personnalisé, dont "une certaine propriété" est liée à votre événement. Ensuite, lorsque "un événement" se produit, vous pouvez modifier la hauteur observée du (des) contrôle (s) qui se trouve à l'intérieur du panneau.

Questions connexes