Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 在WPF数据网格中隐藏元素_C#_Wpf_Datagrid - Fatal编程技术网

C# 在WPF数据网格中隐藏元素

C# 在WPF数据网格中隐藏元素,c#,wpf,datagrid,C#,Wpf,Datagrid,我在WPF中有DataGrid,项目源是整数的2D数组(DataGrid2Dnuget用于处理它)。现在,如何隐藏特定元素?例如,如果某个单元格包含0,则将该单元格显示为空。我找不到关于它的任何东西;我知道StringFormat,但它不是string一种可能的解决方案是使用DataGridTextColumn将数据呈现为字符串数据类型。绑定到这样的列将允许使用自定义值转换器根据您自己的逻辑表示单元格内容 <Window x:Class="Solution.MainWindow"

我在WPF中有
DataGrid
,项目源是整数的2D数组(
DataGrid2D
nuget用于处理它)。现在,如何隐藏特定元素?例如,如果某个单元格包含0,则将该单元格显示为空。我找不到关于它的任何东西;我知道
StringFormat
,但它不是
string

一种可能的解决方案是使用
DataGridTextColumn
将数据呈现为字符串数据类型。绑定到这样的列将允许使用自定义值转换器根据您自己的逻辑表示单元格内容

<Window x:Class="Solution.MainWindow"
        ...
        xmlns:dataGrid2D="http://gu.se/DataGrid2D">
    <Window.Resources>
        <local:CellValueConverter x:Key="cellValueConverter"/>
    </Window.Resources>
    <Grid>
        <DataGrid AutoGenerateColumns="False"
                  dataGrid2D:ItemsSource.Array2D="{Binding Data2D}">
            <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding C0, Converter={StaticResource cellValueConverter}}" Header="Col 1"/>
                <DataGridTextColumn Binding="{Binding C1}" Header="Col 2" />
                <DataGridTextColumn Binding="{Binding C2}" Header="Col 3" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>
自定义值转换器
CellValueConverter.cs

public class CellValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value.ToString() == "0")
            {
                return string.Empty;
            }

            return value;
        }

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

另外,我希望我正确地理解了您正在使用来处理与2D数组的绑定。

@admircalcat3答案是否有助于解决您的问题?
public class CellValueConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value.ToString() == "0")
            {
                return string.Empty;
            }

            return value;
        }

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