这不是您最初问题的答案,而是:
在这种情况下,请解释如何在不使用代码隐藏的情况下将事件处理程序添加到模板
您可以使用 ViewModel 和 ICommand 类来执行此操作。
首先,您需要创建 ViewModel 类,使用无参数构造函数将其设为公开且非静态。
然后创建另一个实现 ICommand 接口的类:
public class Command : ICommand
{
public void Execute(object parameter)
{
//this is what happens when you respond to the event
}
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged;
}
将命令类的实例添加到 ViewModel 类,将其设为私有并通过只读属性将其公开:
public class ViewModel
{
private readonly ICommand _command = new Command();
public ICommand Command
{
get { return _command; }
}
}
在 App.xaml 文件中将 ViewModel 添加为静态资源:
<Application.Resources>
<wpfApplication1:ViewModel x:Key="ViewModel"/>
</Application.Resources>
将 XAML 文件的 DataContext 设置为 ViewModel:
<Window DataContext="{StaticResource ViewModel}">
现在通过绑定到 Command 类来响应您的事件:
<Button Click="{Binding Command}"></Button>
繁荣,没有代码隐藏。希望这可以帮助。