2016-11-29 2 views
1

enter code here Привет Я использую Flyout в моем приложении UWP. При нажатии кнопки я показываю список элементов в выпадающем списке. когда я нажимаю кнопку, всплывающее окно открывается. Но здесь я хочу открыть всплывающее окно, когда список не пуст. Если список пуст, я хочу скрыть всплывающее окно.Как скрыть всплывающее окно UWP по конкретному состоянию

Для этого я написал код, но скрытие не работает. У любого есть идея об этом.

код XAML:

<Button TabIndex="4" Background="#212121" Name="btnCashPay" Click="btnCashPay_Tapped" HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="#212121" BorderThickness="0" Margin="0,-5,0,0" > 
<Image HorizontalAlignment="Center" VerticalAlignment="Center" Source="/Images/pay_bill(30_30).png" Stretch="None"/> 
    <Button.Flyout> 
<Flyout x:Name="flyout" FlyoutPresenterStyle="{StaticResource Flyoutstyle}"> 

    <StackPanel> 
<TextBlock Grid.Row="0" Height="35" HorizontalAlignment="Center" Foreground="DarkTurquoise" FontWeight="SemiBold">Please Add Free Items To Cart </TextBlock> 
<Border x:Name="dgFreeItemsug" BorderThickness="0.5" Visibility="Visible" BorderBrush="LightSlateGray" Grid.Row="1" Background="White" Height="200" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="10,-16,5,0"> 
<ScrollViewer x:Name="svFreeItemSugg" HorizontalScrollBarVisibility="Hidden" Padding="0" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top" HorizontalAlignment="Stretch" Grid.Column="0" Grid.Row="0" Margin="0,0,0,0"> 

<controls:DataGrid x:Name="dgFreeItem" Height="200" HorizontalAlignment="Stretch" 
    controls:DataGridExtensions.UseSingleSelectionAndDeselection="true" VerticalAlignment="Top" RowBackgroundEvenBrush="White" RowBackgroundOddBrush="White" Margin="0,0,0,0" Navigate="dgFreeItem_Navigate"> 
    <controls:DataGrid.Columns> 
<controls:DataGridTextColumn x:Name="freeitemddesc" Width="1*" Binding="{Binding DealSku}"> 
</controls:DataGridTextColumn> 
    <controls:DataGridTextColumn x:Name="freeitemprice" Width="2*" Binding="{Binding DealDescription}"> 
    </controls:DataGridTextColumn> 
    </controls:DataGrid.Columns> 
</controls:DataGrid> 
</ScrollViewer> 
    </Border> 
    </StackPanel> 
</Flyout> 
</Button.Flyout> 
</Button> 

xaml.cs код:

private void btnCardPay_Tapped(object sender, RoutedEventArgs e) 
{ 
    txtcardmessage.Text = string.Empty; 
    media.Play(); 
    if (objfreeitemlist == null) 
     btnCardPay.Flyout.Hide(); 
} 
+0

Вы можете написать код, который вы написали? –

ответ

2

Вы можете определить выпадающей в виде кнопки Resource

<Button x:Name="MyButton" Content="Button" Tapped="Button_Tapped" > 
    <Button.Resources> 
     <Flyout x:Name="MyFlyout"> 
      .... 
     </Flyout> 
    </Button.Resources> 
</Button> 

Таким образом, вы должны открыть выпадающую но вы можете определить, когда его открыть.

private void Button_Tapped(object sender, TappedRoutedEventArgs e) 
{ 
    var button = sender as Button; 

    if (button != null && objfreeitemlist != null) 
    { 
     MyFlyout.ShowAt(button); 
    } 
} 
+0

Спасибо. Томас – Sagar