设置Listview列元素的可见性
本文关键字:可见性 元素 Listview 设置 | 更新日期: 2023-09-27 17:59:20
所以我的问题是。我有一个包含多行的列表视图。在一行中,我有一个按钮来对该行中的数据执行特定的过程。问题是,根据同一行中的数据,这个按钮不应该是可见的。行数据可能类似于:
姓名、年龄、地址、身份证号码、HasApplied、(按钮)
在这种情况下,如果bool值为true,则按钮不应出现。我尝试过使用布尔值到可见性的转换器,但似乎无法使其工作。
任何想法都将不胜感激。
欢呼
另一个选项是使用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();
}
}