在WPF C#中隐藏DataGrid上的DataTable行

时间:2016-11-22 08:27:56

标签: c# .net wpf datatable datagrid

我试图隐藏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;

其中&#39; i&#39;是正确的列号。

如何隐藏行?

1 个答案:

答案 0 :(得分:0)

我也建议过滤,更多我不会使用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>

在您的ViewModel

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

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

相关问题