簡體   English   中英

同時將文本框IsEnabled綁定到兩個不同的單選按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM