如何引用不在代码隐藏中但在另一个对象中的事件处理程序?

Yuf*_*Yuf 1 c# wpf event-handling

我可以将DataContext设置为任何对象,然后将该对象的属性绑定到我的控件.

我想用事件处理程序做同样的事情.我有一类事件处理程序,我希望xaml使用.但是,xaml在后面的代码中查找事件处理程序.

    <Button Click="OnSearch"/>
Run Code Online (Sandbox Code Playgroud)

我收到警告,告诉我OnSearch在类后面的代码中不存在.

  1. 我希望OnSearch成为另一个对象.我怎样才能做到这一点?
  2. 如果我希望xaml在数据上下文对象中查找事件处理程序,该怎么办?

我是WPF的新手,我正在努力学习.我尝试在事件处理程序上绑定,但显然不起作用!

Tig*_*ran 5

我认为为此目的,你应该使用命令而不是事件.

您需要定义YourRoutedEvent从派生的RoutedCommand

并将其绑定到Button控件的命令.在YourRoutedEvent中,您可以在应用程序的不同状态期间以不同的方式实现您希望以不同方式运行的任何复杂逻辑,这可能是您想要的,这就是询问动态事件绑定的原因.

这是一个dimonstrates命令绑定技术的示例链接:

命令绑定

问候.