2012-06-17 73 views
0

我已经阅读了几篇文章,介绍如何从属性中获取窗口,并在使用MVVM模型时将它们绑定到Window XAML中的“twoway”。但是,不约而同地,笔者结束了他们节省在后面的代码为在XAML中绑定到窗口事件

void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) 
{ 
    Properties.Settings.Default.Save(); 
} 

我想设置主窗口XAML绑定到一个类例程保存属性。我觉得应该有像成才:

WindowClosing="{Binding MyClosingEventRoutine}" 

回答

0

很难从您的文章说,但我猜你是做MVVM,看到你不喜欢背后的旧代码?如果是这样,你可以从MVVM框架中获取一些代码来执行命令。这将允许您将窗口关闭事件绑定到视图模型中的命令,如下所示link

+0

对不起,我改变了文字以反映MVVM。感谢您的回复,但是在我正在寻找_Closing事件的绑定关键字的情况下,它并不是非常有用。 –

+0

不,这实际上对您的情况非常有帮助。您无法绑定到关闭事件,就像您无法绑定到按钮单击事件一样。但是,您可以绑定到按钮“命令”。窗口关闭事件没有“命令”,因此您需要像MVVM框架那样使用事件来命令模式。你为什么还认为MVVM框架有它们? – Nogusta

3

您可以使用混合SDK或MVVM Light中的EventTrigger行为。在窗口中关闭你的视图模型中的命令被调用。

<Window xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"> 
<i:Interaction.Triggers> 
    <i:EventTrigger EventName="Closing" > 
     <i:InvokeCommandAction Command="{Binding MyClosingEventRoutine}" /> 
    </i:EventTrigger> 
</i:Interaction.Triggers> 
</Window>