0

UI(WPF)に3つのラジオボタンがあります。そのうちの2つを選択して、テキストボックスを有効にします。3番目のものを選択することにより、テキストボックスを無効にする必要があります。マルチバインディングを使用しますか?はいの場合どのように?

4

1 に答える 1

0

IsEnabled3 番目の RadioButton の「チェックされていない」状態に設定しないのはなぜですか? 通常、ラジオボタンのグループは、一度に 1 つしかチェックできないという点で排他的です。

<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 に答える