WPF绑定按钮

时间:2012-05-09 03:14:43

标签: wpf binding

我的应用程序中有两个按钮

 

现在我想将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;
        }

    }

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用另一个否定IsOn属性的计算/派生属性IsOff(无后备字段)会不会更简单?

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

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

转换器通常用于转换数据类型,例如将Visibility枚举属性绑定到viewmodel中的布尔支持属性。