[英]Binding Textbox IsEnabled to two different Radiobuttons at the same time
我的UI(WPF)中有三個單選按鈕。 通過選擇其中兩個,我要使“文本框已啟用”。 通過選擇第三個,應禁用“文本框”。 我應該使用多重綁定嗎? 如果是,如何?
為什么不將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;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.