Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用XAML将事件绑定到成员字段或属性的事件处理程序?_C#_Wpf_Xaml_Event Handling - Fatal编程技术网

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;