C# 如何使用XAML将事件绑定到成员字段或属性的事件处理程序?
假设我有一个窗口,我想处理关闭的事件。这是微不足道的:C# 如何使用XAML将事件绑定到成员字段或属性的事件处理程序?,c#,wpf,xaml,event-handling,C#,Wpf,Xaml,Event Handling,假设我有一个窗口,我想处理关闭的事件。这是微不足道的: Closed="Window_Closed" 这假设我的窗口中有关闭的事件处理程序。但是如果我有一个成员(字段)怎么办 在我的窗口中,我想这样设置: Closed="event_handler.Window_Closed" “事件处理程序。窗口关闭”不是 有效的事件处理程序方法名称。只有 在生成的或 代码隐藏类是有效的 问题——使用XAML有什么聪明的方法可以做到这一点吗?现在我在代码中设置它,但我更喜欢XAML 编辑 1. 记录在案。
Closed="Window_Closed"
这假设我的窗口中有关闭的事件处理程序。但是如果我有一个成员(字段)怎么办
在我的窗口中,我想这样设置:
Closed="event_handler.Window_Closed"
“事件处理程序。窗口关闭”不是
有效的事件处理程序方法名称。只有
在生成的或
代码隐藏类是有效的
问题——使用XAML有什么聪明的方法可以做到这一点吗?现在我在代码中设置它,但我更喜欢XAML
编辑
1.
记录在案。在代码中,您只需编写:
Closed += event_handler.Window_Closed;
现在,我正在寻找XAML的直接等效方法。我通常会做的是将复杂的方法放在我的ViewModel中,然后从视图后面的代码中调用它。您可以使用通过XAML绑定到命令,但除非您使用其中一个内置命令,否则通常不值得这么做。在4.5之前的WPF上,您不能这样做,因为事件处理程序不支持标记扩展。但在4.5中,您可能会检查解释和实现假设“复杂的”事件处理程序位于库中(不是您的)。我想做的就是绑定到它——因为我可以用代码中的一条指令来做,所以我希望我也可以用XAML来做,而不引入抽象层(比如VM),因为这是一种过分的技巧。
Closed += event_handler.Window_Closed;