C# 如何处理ResourceDictionary中定义的ControlTemplate中的EventHandler?

C# 如何处理ResourceDictionary中定义的ControlTemplate中的EventHandler?,c#,wpf,xaml,mvvm,event-handling,C#,Wpf,Xaml,Mvvm,Event Handling,这个问题更多的是关于沿着MVVM路线的整洁编程,而不是一个“如何做”的问题。 为了清晰起见,我想将我的DataTemplates的所有ControlTemplates保存在一个单独的ResourceDictionary文件中。因此,在主窗口中,它看起来像这样,例如: 但是,这个类的ControlTemplate包含一个列表框,它应该对某些事件做出反应-有一些处理程序,如下所示: 现在,我将这个模板保存在主窗口的XAML中,并将处理程序保存在其代码中,但这不是我想要的。如果它是一个按钮,我

这个问题更多的是关于沿着MVVM路线的整洁编程,而不是一个“如何做”的问题。 为了清晰起见,我想将我的
DataTemplates
的所有
ControlTemplates
保存在一个单独的
ResourceDictionary
文件中。因此,在主窗口中,它看起来像这样,例如:


但是,这个类的ControlTemplate包含一个
列表框
,它应该对某些事件做出反应-有一些处理程序,如下所示:



现在,我将这个模板保存在主窗口的XAML中,并将处理程序保存在其代码中,但这不是我想要的。如果它是一个按钮,我会创建一个命令并以某种方式绑定它。但由于它是一个列表框,我很不幸地被剥夺了这种可能性。我不想求助于ResourceDictionary背后的代码,因为这不是它们的用途。有没有一种简洁而不过于冗长的方式?或者在模板中声明处理程序可能有问题?

您可以使用附加的行为来实现这一点。它们可以是,也可以只是在其值更改时


概述:.

事件是特定于视图的,如果要在多个视图中使用
模板
,则必须使用绑定方法,例如
AttachedProperty
行为