如何将控件上的一个按钮绑定到关闭窗口的 X Button?我只想创建只是关闭窗口的取消按钮。我在我的代码中使用 MVVM。如果可能仅在 xaml 中执行此操作,我只是没有任何特殊代码与按钮单击。
问问题
2158 次
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 来自.net-4.5,因此如果您使用一些较旧版本的.net,您也可以使用以下。
public ICommand CloseWindowCommand
{
get
{
return new RelayCommand<Window>((window) => window.Close());
}
}
于 2013-05-15T21:36:44.647 回答