Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置Listview列元素可见性_C#_Wpf_Mvvm - Fatal编程技术网

C# 设置Listview列元素可见性

C# 设置Listview列元素可见性,c#,wpf,mvvm,C#,Wpf,Mvvm,所以我的问题是。我有一个不同行的列表视图。在一行中,我有一个按钮,用于对该行中的数据执行特定的过程。 问题是,根据同一行中的数据,此按钮不应可见。 即,行数据可能类似于: 姓名、年龄、地址、身份证号码、已申请(按钮) 在这种情况下,如果应用的布尔值为真,则按钮不应出现。 我曾尝试使用布尔值到可见性转换器,但似乎无法使其工作 任何想法都将不胜感激 干杯BooleanToVisibilityConverter将true转换为visible,您需要一个执行相反操作的转换程序: [ValueConver

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

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

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

任何想法都将不胜感激


干杯

BooleanToVisibilityConverter将true转换为visible,您需要一个执行相反操作的转换程序:

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

另一个选项是使用ViewModel并在IsApplyEnabled之类的属性中进行转换。错误时,隐藏按钮。或者可以将按钮绑定到带有CanExecute覆盖的RelayCommand。这将自动禁用该按钮。您还可以覆盖模板,使按钮在禁用时隐藏自身。剥猫皮的方法很多。

是的。我现在正在开发UI。一旦我加入viewmodels,我想这就是我要走的路线。尽管如此,我还是要使用mvvm属性。我在另一个实现中使用了转换器。干杯