0

アプリケーションに 2 つのボタンがあります

ここで、btnOff を !isOn にバインドします。意味は、btnOn が有効で、btnOff が無効である必要があり、その逆も同様です。

編集:以下は私の実装です:

<Button x:Name="btnOn" Content="On" Width="45" Height="24" IsEnabled="{Binding isOn, Converter={StaticResource BoolInverter}}" />
   <Button x:Name="btnOff" Content="Off" Width="45" Height="24" IsEnabled="{Binding isOn} />

 public class BoolInverterConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is bool)
            {
                return !(bool)value;
            }
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value is bool)
            {
                return !(bool)value;
            }
            return value;
        }

    }
4

2 に答える 2

0

IsOn プロパティを無効にする別の計算/派生プロパティ IsOff (バッキング フィールドなし) を使用する方が簡単ではないでしょうか?

public bool IsOn{ 
  get{...}
  set
  {    _isOn = value; 
       NotifyPropertyChanged("IsOn");
       NotifyPropertyChanged("IsOff");
  }
}

public bool IsOff
{
   get{   return !IsOn;}
}

コンバーターは通常、データ型を変換するために使用されます。たとえば、Visibility 列挙型プロパティをビューモデルのブール バッキング プロパティにバインドします。

于 2012-05-09T04:27:44.930 に答える
0

要素データバインディング

http://www.codeproject.com/Articles/29054/WPF-Data-Binding-Part-1 -> 要素データ バインディングの別の例

于 2012-05-09T03:37:00.293 に答える