Reputation: 95
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>
Upvotes: 7
Views: 42807
Reputation: 6260
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
.
Upvotes: 12