我试图隐藏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;是正确的列号。
如何隐藏行?
答案 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