【发布时间】:2014-05-03 09:47:27
【问题描述】:
我有一个保存按钮,我想使用 MVVM 设计模式,但是我需要在保存完成后关闭窗口,我在网上看了一点,发现这是很多工作,所以我决定在后面的代码和视图模型上的所有保存逻辑上制作 window.close()。
如何实现带有命令绑定和事件处理程序的按钮?
【问题讨论】:
标签: c# wpf data-binding mvvm event-handling
我有一个保存按钮,我想使用 MVVM 设计模式,但是我需要在保存完成后关闭窗口,我在网上看了一点,发现这是很多工作,所以我决定在后面的代码和视图模型上的所有保存逻辑上制作 window.close()。
如何实现带有命令绑定和事件处理程序的按钮?
【问题讨论】:
标签: c# wpf data-binding mvvm event-handling
查看this answer,它对我来说效果很好。您可以将窗口本身作为命令参数传递,然后在视图模型中使用它来关闭它。
来自该答案的相关 XAML:
Command="{Binding CloseWindowCommand, Mode=OneWay}"
CommandParameter="{Binding ElementName=TestWindow}"
来自相同答案的相关 ViewModel 命令处理程序:
private void CloseWindow(Window window)
{
if (window != null)
{
window.Close();
}
}
您显然还需要公开一个要绑定的命令,在本例中称为CloseWindowCommand。
【讨论】:
只需像这样在按钮 xaml 中定义这两个:
<Button Command="{Binding SaveCommand}" Click="Button_click"/>
【讨论】: