我正在尝试将特定的行隐藏在数据表中,但我只能隐藏列。
我找到了一些与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'是正确的列号。
如何隐藏一行?
我也建议过滤,更多,我不会使用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