【问题标题】:Hide rows from DataTable on DataGrid in WPF C#在 WPF C# 中的 DataGrid 上隐藏 DataTable 中的行
【发布时间】:2017-04-05 20:11:17
【问题描述】:

我试图隐藏 DataTable 中的特定行,但我只能隐藏列。

我找到了一些与DataGridView相关的解决方案,但不一样,对我不起作用。

在我的 xaml 文件中:

<DataGrid Visibility="Visible" HorizontalAlignment="Stretch" Name="dataGrid_first" VerticalAlignment="Stretch" Width="Auto"  Grid.Column="1" Grid.Row="2" >

</DataGrid>

为了在上面显示数据,我这样做:

dataGrid_first.ItemsSource = myDataTable.AsDataView();

而且它正在工作。为了隐藏列,我正在做这样的事情:

dataGrid_first.Columns[i].Visibility = Visibility.Hidden;

其中 'i' 是正确的列号。

如何隐藏一行?

【问题讨论】:

  • 隐藏特定行的条件是什么?一种简单的方法是使用 DataView Filter property
  • 我有两个相似的数据网格,我试图显示两个数据库之间的差异。你能写一些简单的例子吗?
  • 为什么要给网格数据,然后尝试隐藏一些数据。为什么不给它你想要它显示的数据。换句话说,首先过滤数据。
  • 我可以提供适当的数据。问题是我无法过滤正确的行。

标签: c# .net wpf datatable datagrid


【解决方案1】:

我也建议过滤,而且我不会使用有点旧的 DataTable。 您可以使用

隐藏行
<DataGrid ItemsSource="{Binding DataView}">
                <DataGrid.RowStyle>
                    <Style TargetType="DataGridRow">
                        <!-- your column name, visibility was not working if there is no converter -->
                        <Setter Property="Visibility" Value="{ Binding Path=IsVisible ,Converter={StaticResource BoolToVisibilityConverter}}"></Setter>
                    </Style>
                </DataGrid.RowStyle>
            </DataGrid>

在您的视图模型中

myDataTable.Rows[i]["IsVisible"] = false;

如果您没有设置 DataContext,您的组件将成为上下文,因此您可以在其中添加 DataView 属性(但如果可以,请使用 ViewModels)。 BoolToVisibilityConverter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 2020-12-08
    • 2010-11-20
    • 2012-01-13
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多