Button中有条不紊地显示弹出按钮

时间:2016-12-12 15:08:58

标签: uwp uwp-xaml

在UWP中我有一个弹出按钮:

<Button Content="My button" Command="{Binding MyCommand}">
    <Button.Flyout>
        <Flyout>This a a flyout popup</Flyout>
    </Button.Flyout>
</Button>

我使用MVVM模式,我只想在ViewModel属性设置为True时显示弹出窗口。我试过这篇文章:Using Windows 8.1 Flyout control with MVVM

我的目标是:如果ViewModel的Property MyProperty为True,那么我不显示弹出按钮并执行命令,但如果MyProperty等于false,那么我只显示弹出按钮。

问题是:弹出按钮总是在执行命令后显示(或点击事件)。

我想知道是否有解决方案。

提前致谢,

此致

1 个答案:

答案 0 :(得分:0)

您可以将Flyout定义为按钮资源

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

这样你就必须自己打开Flyout,但你可以定义何时打开它。

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

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