我的UI(WPF)中有三个Radiobuttons。 通过选择其中两个,我想启用一个Textbox。通过选择第三个,应禁用文本框。 我应该使用Multibinding吗?如果是,如何?
答案 0 :(得分:0)
为什么不将IsEnabled
设置为“未检查” - 第三个RadioButton的状态?通常,一组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;
}
}
}