繁体   English   中英

Wpf从代码背后改变可见性

[英]Wpf changing Visibility from code behind

我试图从后面的代码改变我的数据网格的可见性,但它不起作用

 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  

        }
    }

在这里编辑我的datagrid Xaml这是一个简单的:

<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>

放弃


设置可见性适用于DataGrid 刚检查,这应该完美的工作:

 <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> 

代码背后:

 private void Button_Click(object sender, RoutedEventArgs e) { this.gridToHide.Visibility = Visibility.Visible; } 



可能不允许/阻止设置UIElement Visibility属性的是父元素的Visibility 如果隐藏了父元素,则无法使其祖先可见。 Visibility的值将被更改,但IsVisible将保持为false
要解决此问题,您必须检查元素(父项)的逻辑树并搜索隐藏的元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM