确认弹出窗口

时间:2014-06-03 09:09:50

标签: c# wpf mvvm

如何显示确认弹出窗口?

我有关闭窗口按钮,我想在实际关闭窗口之前显示确认Popup

目前这样做

        <Button x:Name="ButonExit" Content="Close window">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <BeginStoryboard>
                        <Storyboard>
                            <BooleanAnimationUsingKeyFrames Storyboard.TargetName="PopupExit" Storyboard.TargetProperty="IsOpen">
                                <DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="True"/>
                            </BooleanAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            </Button.Triggers>
        </Button>
        <Popup x:Name="PopupExit" PlacementTarget="{Binding ElementName=ButonExit}" StaysOpen="False">
            <TextBlock>Here will be some text and buttons</TextBlock>
        </Popup>

如果你问我,那会很尴尬:

  • 名称按钮(将子项分配给弹出窗口 - PlacementTarget);
  • name popup(从动画中设置其属性IsOpened);
  • 使用故事板和BooleanAnimationUsingKeyFrames动画的单帧创建按钮事件触发器。

不能像

那样
<Button Content="Close window" OnClick="OpenTehPopupPlx"\>

1 个答案:

答案 0 :(得分:1)

是的,当然你可以根据需要使用代码。 MVVM并不意味着没有代码隐藏,它意味着只使用代码隐藏来驱动UI外观而不是逻辑,即使这样,只有通过XAML这样做并不简单。

使用代码隐藏进行简单的确认对话框,您的案例显然更容易。对话框中任何更复杂的逻辑都需要与VM进行交互,并且您需要具有VM可以与之交谈的某种对话服务。