【问题标题】:Binding to Window Events in XAML在 XAML 中绑定到窗口事件
【发布时间】:2012-06-18 18:15:43
【问题描述】:

我已经阅读了几篇关于如何在使用 MVVM 模型时从属性中获取窗口设置并在 Window XAML 中“双向”绑定它们的文章。但是,作者总是将它们保存在后面的代码中

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

我想将 MainWindow XAML 设置为绑定到保存属性的类例程。我认为应该有类似的东西:

WindowClosing="{Binding MyClosingEventRoutine}"

【问题讨论】:

    标签: wpf xaml mvvm window


    【解决方案1】:

    您可以使用 blend 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>
    

    【讨论】:

      【解决方案2】:

      很难从您的帖子中看出,但我猜您正在做 MVVM,因为您不喜欢背后的旧代码?如果是这样,您可以从 MVVM 框架中获取一些对命令执行事件的代码。这将允许您按照以下link

      将窗口关闭事件绑定到视图模型中的命令

      【讨论】:

      • 抱歉,我更改了文本以反映 MVVM。感谢您的回复,但在我正在寻找 _Closing 事件的绑定关键字的情况下,这不是很有帮助。
      • 不,实际上它对您的情况很有帮助。你不能绑定到关闭事件,就像你不能绑定到按钮点击事件一样。但是,您可以绑定到“命令”按钮。窗口关闭事件没有“命令”,因此您需要像 MVVM 框架那样使用事件来命令模式。为什么你认为 MVVM 框架有它们?
      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 2018-11-09
      • 2017-12-14
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多