0

我想要关于如何在不使用 ResourceDictionary Code-Behind(例如 Styles.xaml.cs)的情况下处理来自 ResourceDictionary(例如 Styles.xaml)中控件的事件的帮助,主要是因为我希望 Styles.xaml 只是用于样式设置。

我的场景是,我有一个自定义页面,它使用 ResourceDictionary 作为 DataTemplate 样式(我使用的是 TemplateSelector)。但是,我目前遇到的问题是处理事件。例如:

我的Styles.xaml中有这个:

.
.
<Button Click="Button_Click"/>
.

我在CustomPage.xaml.cs中声明了这一点:

private void Button_Click(object sender, RoutedEventArgs e)
{
  // some code
}

但是,它不起作用。有什么方法可以明确告诉我想为按钮的点击事件使用那个特定的事件处理程序?此外,是否可以为每个页面设置不同的处理程序,例如

CustomPage2.xaml.cs:

private void Button_Click(object sender, RoutedEventArgs e)
{
   // some different code from CustomPage.xaml.cs
}

谢谢!

4

1 回答 1

2

答案很简单:不要以这种方式处理事件。请改用绑定(尤其是在您使用数据模板的情况下)。例如,对于Button

<Button Command="{Binding MyCommand}">

whereMyCommandICommand您的数据上下文中的 -implemented 实例。

如果您不熟悉 WPF 中的数据绑定,请从此处开始阅读。

于 2012-09-13T06:36:24.107 回答