在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,那么我只显示弹出按钮。
问题是:弹出按钮总是在执行命令后显示(或点击事件)。
我想知道是否有解决方案。
提前致谢,
此致
答案 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);
}
}