所以我的问题是。我有一个包含各种行的列表视图。在一行中我有一个Button来对该行中的数据执行某个过程。 事情是这个按钮不应该是可见的,具体取决于同一行中的数据。 即。行数据可能类似于:
姓名,年龄,地址,身份证号码,已应用,(按钮)
在这种情况下,如果应用的bool值为true,则不应出现该按钮。 我已经尝试使用布尔到可见性转换器,但我似乎无法让它工作。
任何想法都将不胜感激。
欢呼声
答案 0 :(得分:1)
BooleanToVisibilityConverter将true转换为可见,你想要的是相反的:
[ValueConversion(typeof(bool), typeof(Visibility))]
public class BoolToOppositeVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var boolValue = value as bool?;
return boolValue.HasValue && boolValue.Value
? Visibility.Collapsed
: Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
答案 1 :(得分:1)
另一个选择是使用ViewModel并在像IsApplyEnabled这样的属性中进行转换。如果是假则隐藏按钮。或者,您可以使用CanExecute覆盖将按钮绑定到RelayCommand。这会自动禁用该按钮。您还可以覆盖模板,以便在禁用时隐藏Button。许多方法给猫皮肤。