设置Listview列元素的可见性

本文关键字:可见性 元素 Listview 设置 | 更新日期: 2023-09-27 17:59:20

所以我的问题是。我有一个包含多行的列表视图。在一行中,我有一个按钮来对该行中的数据执行特定的过程。问题是,根据同一行中的数据,这个按钮不应该是可见的。行数据可能类似于:

姓名、年龄、地址、身份证号码、HasApplied、(按钮)

在这种情况下,如果bool值为true,则按钮不应出现。我尝试过使用布尔值到可见性的转换器,但似乎无法使其工作。

任何想法都将不胜感激。

欢呼

设置Listview列元素的可见性

另一个选项是使用ViewModel并在IsApplyEnabled等属性中进行转换。当它是假的时候,隐藏按钮。或者,您可以使用CanExecute覆盖将按钮绑定到RelayCommand。这将自动禁用该按钮。您也可以覆盖模板,使按钮在禁用时隐藏自己。剥猫皮的方法很多。

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();
    }
}