2010-04-14 3 views
0

J'essaye de lier la valeur Height de l'élément à la propriété Checkbox.IsChecked. Pourquoi ça ne marche pas?Modifier la hauteur lorsque la case est cochée?

<Window.Resources> 
    <local:BoolToHeightConverter x:Key="BoolToHeightConverter"/> 
</Window.Resources> 

<Button Name="JustBtn" Content="Hello World"/> 
     <CheckBox IsChecked="{Binding ElementName=JustButton, Path=Height, Converter=BoolToHeightConverter}" /> 


[ValueConversion(typeof(Nullable<bool>), typeof(double))] 
public class BoolToHeightConverter : IValueConverter 
{ 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return double.NaN; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return null; 
    } 
} 

Il n'initialise même pas la fenêtre. Dit: Le type 'IValueConverter' n'a pas de classe publique TypeConverter

+0

double.NON n'est PAS un bool. –

Répondre

1

Il y a quelques problèmes. Tout d'abord, il semble que vous essayez de modifier la propriété Height lorsque le CheckBox est coché. Si tel est le cas, vous devez implémenter votre logique dans la méthode ConvertBack du convertisseur, et spécifier un Mode sur le Binding. En second lieu, votre liaison doit utiliser un StaticResource pour référencer votre convertisseur:

<CheckBox IsChecked="{Binding ElementName=JustButton, Path=Height, Converter={StaticResource BoolToHeightConverter}, Mode=OneWayToSource}" /> 
0

Je suis désolé - mon mauvais: j'ai oublié de joindre le convertisseur par StaticResource. Désolé les gars ...

Questions connexes