Изменить свойство видимости сетки

#c# #visual-studio #uwp

#c# #visual-studio #uwp

Вопрос:

Я пишу приложение для UWP.

У меня есть этот xaml:

     <ScrollViewer HorizontalAlignment="Left" Height="668" Margin="63,52,0,0" VerticalAlignment="Top" Width="350">
        <GridView   x:Name="OrdersGridView" IsItemClickEnabled="True" >
            <GridView.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <Grid  Height="204" BorderBrush="#FFFBF8F8" BorderThickness="0,0,1,1">
                            <TextBlock Text="{Binding date_created}"  HorizontalAlignment="Left" TextAlignment="Center" TextWrapping="Wrap"  VerticalAlignment="Top" Width="350" Height="50" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  TextAlignment="Center"  HorizontalAlignment="Left" Margin="0,146,-1,0" TextWrapping="Wrap" Text="{Binding billing.address_1}" VerticalAlignment="Top" Height="58" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  HorizontalAlignment="Left" TextAlignment="Center" Margin="0,86,-1,0" TextWrapping="Wrap" Text="{Binding billing.first_name}" VerticalAlignment="Top" Height="60" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" Padding="0,0,0,0"/>

                        </Grid>

                    </StackPanel>
                </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>
    </ScrollViewer>
    <Grid x:Name="DetailGrid" HorizontalAlignment="Left" Height="667" Margin="415,53,-2,0" VerticalAlignment="Top" Width="867">
        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="390,172,0,0" VerticalAlignment="Top"/>


    </Grid>





</Grid>
  

Я установил DetailGrid.Visibility = Visibility.Collapsed эту сетку <Grid x:Name="DetailGrid" в .cs

Мне нужно изменить его Visible , когда я нажимаю на элемент в GridView.

Как я могу это сделать?

Спасибо за помощь, чуваки.

Комментарии:

1. Какой элемент вы хотите обработать событием щелчка? Поскольку вы знаете, как скрыть сетку, с какой проблемой вы сталкиваетесь, чтобы показать ее обратно? Вы пытались Visibility.Visible показать его обратно?

2. Сетка в виде сетки @SivaGopal

3. Я думаю, что ваш вопрос неясен, пожалуйста, исправьте его, если требуется. Вы сказали «я установил DetailGrid.Visibility значение Collapsed » и хотите изменить ЕГО обратно Visible .

4. Мне нужно изменить его на видимый, когда я нажимаю на элемент в GridView. Это в моем вопросе говорит о том, что мне нужно щелкнуть Grid GridView и изменить свойство Grid x:Name="DetailGrid" . @SivaGopal

Ответ №1:

Я нашел ответ на вопрос

вот xaml:

    <GridView   x:Name="OrdersGridView" IsItemClickEnabled="True"

          SelectionMode="Single" ItemClick="OrdersGridView_ItemClick" 
           >
            <GridView.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <Grid x:Name="GridInf" Tapped="Grid_Tapped"  Height="204" BorderBrush="#FFFBF8F8" BorderThickness="0,0,1,1">
                            <TextBlock Text="{Binding date_created}"  HorizontalAlignment="Left" TextAlignment="Center" TextWrapping="Wrap"  VerticalAlignment="Top" Width="350" Height="50" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  TextAlignment="Center"  HorizontalAlignment="Left" Margin="0,146,-1,0" TextWrapping="Wrap" Text="{Binding billing.address_1}" VerticalAlignment="Top" Height="58" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  HorizontalAlignment="Left" TextAlignment="Center" Margin="0,86,-1,0" TextWrapping="Wrap" Text="{Binding billing.first_name}" VerticalAlignment="Top" Height="60" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" Padding="0,0,0,0"/>

                        </Grid>

                    </StackPanel>
                </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>
    </ScrollViewer>
    <Grid x:Name="DetailGrid" HorizontalAlignment="Left" Height="667" Margin="415,53,-2,0" VerticalAlignment="Top" Width="867">
        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="390,172,0,0" VerticalAlignment="Top"/>


    </Grid>
  

Вот код для действия:

  private void Grid_Tapped(object sender, TappedRoutedEventArgs e)
    {
        DetailGrid.Visibility = Visibility.Visible;
    }
  

Ответ №2:

Именно так я бы это сделал:

XAML: добавить выделение, измененный обработчик событий

 <ScrollViewer HorizontalAlignment="Left" Height="668" Margin="63,52,0,0" VerticalAlignment="Top" Width="350">
        <GridView   x:Name="OrdersGridView" IsItemClickEnabled="True" Selection_Changed="OrdersGridView_SelectionChanged">
            <GridView.ItemTemplate>
                <DataTemplate>
                    <StackPanel >
                        <Grid  Height="204" BorderBrush="#FFFBF8F8" BorderThickness="0,0,1,1">
                            <TextBlock Text="{Binding date_created}"  HorizontalAlignment="Left" TextAlignment="Center" TextWrapping="Wrap"  VerticalAlignment="Top" Width="350" Height="50" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  TextAlignment="Center"  HorizontalAlignment="Left" Margin="0,146,-1,0" TextWrapping="Wrap" Text="{Binding billing.address_1}" VerticalAlignment="Top" Height="58" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" />
                            <TextBlock  HorizontalAlignment="Left" TextAlignment="Center" Margin="0,86,-1,0" TextWrapping="Wrap" Text="{Binding billing.first_name}" VerticalAlignment="Top" Height="60" Width="350" FontFamily="SF UI Display" FontSize="25" FontWeight="Light" Foreground="White" Padding="0,0,0,0"/>

                        </Grid>

                    </StackPanel>
                </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>
    </ScrollViewer>
  

И код c #:

 private void OrdersGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DetailGrid.Visibility = Visibility.Visible;
}