0

我的 UI (WPF) 中有三个单选按钮。通过选择其中两个,我想启用文本框。并通过选择第三个文本框应该被禁用。我应该使用多重绑定吗?如果是怎么办?

4

1 回答 1

0

为什么不将IsEnabled第三个 RadioButton 设置为“未选中”状态?通常一组单选按钮是排他的,因为一次只能检查一个。

<StackPanel>
    <StackPanel.Resources>
        <convert:InvertBooleanConverter x:Key="InvertConverter" />
    </StackPanel.Resources>
    <TextBox IsEnabled="{Binding IsChecked, ElementName=radio, Converter={StaticResource InvertConverter}}" />
    <RadioButton x:Name="radio" IsChecked="True"/>
</StackPanel>

使用自定义转换器

using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;

namespace MyApplication.Converters {
    public sealed class InvertBooleanConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            return !(bool)value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            return DependencyProperty.UnsetValue;
        }
    }
}
于 2012-11-03T09:39:11.637 回答