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

标签 c# wpf event-handling

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

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

    <Button Click="OnSearch"/>

我收到警告,告诉我类隐藏代码中不存在 OnSearch。

  1. 我希望 OnSearch 在另一个对象中。我该怎么做?
  2. 如果我希望 xaml 在数据上下文对象中查找事件处理程序怎么办?

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

最佳答案

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

您需要定义派生自 RoutedCommandYourRoutedEvent

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

这是一个演示命令绑定(bind)技术的示例链接:

Command binding

问候。

关于c# - 如何引用不在代码隐藏中但在另一个对象中的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6753147/

相关文章:

c# - 无法安装 MSVS 2010 C# Express - 先决条件 x64 不安装

c# - 为什么此方法返回 double.PositiveInfinity 而不是 DivideByZeroException?

c# - LongListSelector 和 ContextMenu 返回错误的项目

c# - Entity Framework 和 WPF - 什么时候需要 dbContext.Load()?

c# - 如何将 C++ GDI 代码放入 C# 项目中

c# - 为什么 C# 编译器会产生编译错误?

c# - WPF 复选框与多行内容左上角对齐

javascript - 从下拉菜单中选择(浏览器缓存的下拉菜单)——触发哪个事件?

javascript - 使用 Jquery 删除滚动绑定(bind)而不删除其他绑定(bind)

javascript - EventEmitter 触发一次,请求在此后挂起