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