2016-11-29 18 views
1

enter code hereこんにちは私はフライアウト私の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コード:あなたはフライアウトを開く必要が

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

この方法でボタンのリソースとして、あなたのフライアウトを定義することができ

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

ここに書いたコードを投稿できますか? –

答えて

2

あなたはそれをいつ開くのかを定義することができます。

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

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

ありがとう。トーマス – Sagar

関連する問題