gpt4 book ai didi

c# - WPF MVVM事件到命令-基于事件args调用命令

转载 作者:行者123 更新时间:2023-12-03 10:55:29 25 4
gpt4 key购买 nike

我有一个WPF应用程序,它使用DevExpress控件和带有PRISM的MVVM。

我正在使用DockLayoutManager的'DockOperationCompleted'事件在我的 View 模型上调用如下命令:

    <dxd:DockLayoutManager x:Name="dockContainer">
<i:Interaction.Triggers>
<i:EventTrigger EventName="DockOperationCompleted">
<i:InvokeCommandAction Command="{Binding DataContext.SaveLayoutCommand, ElementName=dockContainer}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<dxd:LayoutGroup/>
</dxd:DockLayoutManager>

“SaveLayoutCommand”命令的目的是保存布局,以便以后可以恢复它。

DockItem停靠或关闭后会引发“DockOperationCompleted”事件(还有其他情况,但它们是不相关的)。

问题是,当我关闭主窗口时,DockLayoutManager中的停靠项被一个接一个地关闭,因此每个关闭的停靠项都会调用“SaveLayoutCommand”,而我不希望这种情况发生。

引发事件的'DockOperationCompletedEventArgs'具有'DockOperation'属性,我可以再次检查该属性,但是我不确定此代码应准确放置在何处。

我要达到的目的是仅在一种情况下-停靠该项目时才应调用该命令

我的问题是:当基于事件的事件args调用命令时,有没有一种方法可以“过滤”?

谢谢 :)

最佳答案

没有内置方法可以过滤在调用操作之前引发的事件。但是,您可以实现自己的自定义触发操作来执行过滤。

不幸的是,访问事件args并将它们传递给命令也不容易。请参阅以下问题作为引用:

MVVM Passing EventArgs As Command Parameter

关于c# - WPF MVVM事件到命令-基于事件args调用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15411993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com