Изменить высоту, когда флажок установлен? - PullRequest
0 голосов
/ 14 апреля 2010

Я пытаюсь привязать значение высоты элемента к свойству 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

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

Есть пара проблем.Во-первых, похоже, что вы пытаетесь изменить свойство Высота, когда установлен флажок CheckBox.В этом случае вы должны реализовать свою логику в методе ConvertBack преобразователя и указать Mode в Binding.Во-вторых, ваша привязка должна использовать StaticResource для ссылки на ваш конвертер:

<CheckBox IsChecked="{Binding ElementName=JustButton, Path=Height, Converter={StaticResource BoolToHeightConverter}, Mode=OneWayToSource}" />
0 голосов
/ 15 апреля 2010

Извините - мой плохой: я забыл прикрепить конвертер через StaticResource. Простите, ребята ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...