5

如何将控件上的一个按钮绑定到关闭窗口的 X Button?我只想创建只是关闭窗口的取消按钮。我在我的代码中使用 MVVM。如果可能仅在 xaml 中执行此操作,我只是没有任何特殊代码与按钮单击。

4

3 回答 3

7

您可以只调用该Close()方法,该方法将关闭窗口。

private void MyButton_Click(object s, RoutedEventArgs e)
{
    Close();
}
于 2013-05-15T20:06:08.127 回答
3

如果它是 WPF(如果我没记错的话),您可以CallMethodAction将父级用作行为并仅通过 XAML 使用 Close() 方法。就像是;

父窗口x:Name="window"

命名空间;

 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
 xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

-

<Button Content="Cancel">
    <i:Interaction.Triggers>
      <i:EventTrigger EventName="Click">
        <ei:CallMethodAction
            TargetObject="{Binding ElementName=window}"
            MethodName="Close"/>
      </i:EventTrigger>
    </i:Interaction.Triggers>
  </Button>

希望这可以帮助。

于 2013-05-15T20:18:21.867 回答
3

没有代码隐藏的 MVVM 解决方案也可能如下所示:

看法:

<Button Content="Cancel" Command="{Binding CloseWindowCommand}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />

视图模型:

public ICommand CloseWindowCommand
{
    get
    {
        return new RelayCommand<Window>(SystemCommands.CloseWindow);
    }
}

但是 SystemCommands 来自,因此如果您使用一些较旧版本的,您也可以使用以下。

public ICommand CloseWindowCommand
{
    get
    {
        return new RelayCommand<Window>((window) => window.Close());
    }
}
于 2013-05-15T21:36:44.647 回答