C#/WPF : Make a GridViewColumn Visible=false?

标签 c# wpf listview visibility gridviewcolumn

有谁知道是否有这样的选项来隐藏 GridViewColumn:

<ListView.View>
    <GridView>
        <GridViewColumn Header="Test" IsVisible="{Binding Path=ColumnIsVisible}" />
    </GridView>
<ListView.View>

非常感谢!

编辑:为清楚起见

不幸的是,没有“IsVisible”属性。我正在寻找一种方法来创建它。

编辑:基于反馈的解决方案如下:

<GridViewColumn DisplayMemberBinding="{Binding Path=OptionColumn1Text}" 
                Width="{Binding Path=SelectedEntitiy.OptionColumn1Width}">
    <GridViewColumnHeader Content="{Binding Path=SelectedEntitiy.OptionColumn1Header}" IsEnabled="{Binding Path=SelectedEntitiy.OptionColumn1Width, Converter={StaticResource widthToBool}}" />
</GridViewColumn>

public class WidthToBooleanConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (int)value > 0;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

感谢大家!
干杯

最佳答案

编辑:反射(reflect)修改后的问题。

创建一个宽度为 0 的列怎么样?写一个 Boolean to Width IValueConverter,以 ColumnIsVisible 作为 ConverterParmeter?

 public class BooleanToWidthConverter : IValueConverter {
        public object Convert(object value, Type targetType, 
                              object parameter, CultureInfo culture){
            return ((bool) parameter)? value : 0;
        }
 
        public object ConvertBack(object value, Type targetType, 
                                  object parameter, CultureInfo culture){
            throw new NotImplementedException();
        }
    }

类似于:

<ListView .. >
 <ListView.Resources>
  <BooleanToWidthConverter x:Key="boolToWidth" />
 </ListView.Resources>

 <ListView.View>
    <GridView>
        <GridViewColumn 
                  Header="Test" 
                  Width=
      "{Binding Path=ColumnWidth, 
                Converter={StaticResource boolToWidth}, 
                ConverterParameter=ColumnIsVisible}" />
    </GridView>
 <ListView.View>

关于C#/WPF : Make a GridViewColumn Visible=false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392811/

相关文章:

wpf - DoDragDrop() - droptarget 是另一个应用程序(word 或 excel)

c# - 如何验证两个相互依赖的属性?

c# - 有没有办法验证所有内容文件是否仍然存在?

Android在OnTouchListener()中获取listview的位置

android - 如何以编程方式更改 Android ListView 的布局边距

c# - WPF应用程序OnStartup出现System.IO.FileLoadException的原因

c# - 构造函数链中的 IDisposable

android - Android 中 ListView 的 setBackgroundDrawable

c# - 如果与开关速度

c# - 如何将 namevaluecollection 自动映射到强类型类?