I am trying to change the visiblity of my datagrid from code behind but it's not working
private void afch_data_Click(object sender, System.Windows.RoutedEventArgs e)
{
if (donne_compte.IsVisible) // this is a grid and It's visible
{
dgComptes.Visibility = Visibility.Visible;
//when I breakpoint here , I find that the datagrid visibilty `property is still set to hidden
}
}
EDIT here s my datagrid Xaml It's a simple one :
<DataGrid x:Name="dgComptes" CanUserAddRows="False" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding ComCollection}" RowHeaderWidth="0" HorizontalScrollBarVisibility="Disabled" HorizontalAlignment="Left" Margin="529.534,84.016,-390.033,0" VerticalAlignment="Top" Height="Auto" MaxHeight="200" Width="395.429" RenderTransformOrigin="0.5,0.5" Background="#FFCFCFCF" ColumnWidth="*" HorizontalGridLinesBrush="Black" VerticalGridLinesBrush="Black" RowBackground="#FFCFCFCF" AreRowDetailsFrozen="True" Style="{DynamicResource DataGridStyle2}" CellEditEnding="dataGrid1_CellEditEnding" CurrentCellChanged="dataGrid1_CurrentCellChanged" SelectionChanged="dataGrid1_SelectionChanged" AutoGeneratingColumn="dataGrid1_AutoGeneratingColumn" AutoGenerateColumns="False" >
<DataGrid.Columns >
<DataGridTemplateColumn x:Name="champ_supp2" >
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<Button x:Name="supprime" Content="Button" Width="30" Height="30" Style="{DynamicResource ButtonStyle12}" Click="supprime_Click"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Id" Binding="{Binding ID}" />
<DataGridTextColumn Header="Taille" Binding="{Binding TAILLE}" />
<DataGridTextColumn Header="Client" Binding="{Binding CLIENT}" />
<DataGridTextColumn Header="D.arrivée" Binding="{Binding D_ARRIVEE}" />
<DataGridTextColumn Header="D.départ" Binding="{Binding D_DEPART}" />
</DataGrid.Columns>
</DataGrid>
Disclaimer
DataGrid. Just checked and this should perfectly work:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Button Grid.Row="0" Content="Show DataGrid" Click="Button_Click"/>
<DataGrid Visibility="Hidden"
Grid.Row="1"
x:Name="gridToHide">
</DataGrid>
</Grid>
with code behind:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.gridToHide.Visibility = Visibility.Visible;
}
Solution
Visibility property of a UIElement is Visibility of the parent element.
If parent element is hidden you can't make its ancestors visible. The value of Visibility will be changed but IsVisible will remain false.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With