2010-04-14 38 views
0

我試圖將元素的高度值綁定到Checkbox.IsChecked屬性。爲什麼這不起作用?選中複選框時是否改變高度?

<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; 
    } 
} 

它甚至沒有啓動窗口。說: 'IValueConverter'類型沒有公共TypeConverter類

+0

double.NaN不是布爾。 – 2010-04-14 20:11:02

回答

1

有幾個問題。首先,當您檢查CheckBox時,您似乎試圖修改Height屬性。如果是這種情況,您應該在轉換器的ConvertBack方法中實現您的邏輯,並在Binding上指定Mode。其次,你的綁定應該使用StaticResource引用您的轉換器:

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

對不起 - 我的壞:我忘了通過StaticResource的附加轉換器。 對不起...