如何在Visibility属性上执行简单的XAML(WPF)条件绑定

我有一个带有属性的视图模型:

public class MyModel { public bool IsEnabled {get;set;} } 

我想使用此属性来切换按钮状态。 如果布尔值为true,我想隐藏按钮,否则显示它。

我尝试过这样的事情:

  

但这不合适。

我尝试了一些更复杂的解决方案,但我的猜测是,我错过了一些微不足道的东西。

有什么建议?

由于您希望在HiddenVisible之间切换并隐藏true,您可以编写自定义IValueConverter或使用简单的Style.Trigger

  

这是假设相应地设置DataContext并且每当更改时MyModel.IsEnabled引发INotifyPropertyChanged.PropertyChanged事件

 public class MyModel : INotifyPropertyChanged { private bool _isEnabled; public bool IsEnabled { get { return _isEnabled; } set { _isEnabled = value; OnPropertyChanged("IsEnabled"); } } #region INotifyPropertyChanged public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { var handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } #endregion } 

使用BooleanToVisibilityConverter:

     

添加inheritanceIValueConverter的类

 public class BooleanToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { bool bValue = (bool)value; if (bValue) return Visibility.Visible; else return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Visibility visibility = (Visibility)value; if (visibility == Visibility.Visible) return true; else return false; } #endregion }