【问题标题】:How to reference event handlers that are not in code-behind, but are in another object?如何引用不在代码隐藏中但在另一个对象中的事件处理程序?
【发布时间】:2011-07-19 19:44:06
【问题描述】:

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

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

    <Button Click="OnSearch"/>

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

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

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

【问题讨论】:

    标签: c# wpf event-handling


    【解决方案1】:

    我认为为此你应该使用 Commands 而不是 Events

    您需要定义派生自RoutedCommandYourRoutedEvent

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

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

    Command binding

    问候。

    【讨论】:

    • 感谢我阅读了命令。直到现在才知道它们的存在!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多