C#,WPF在代码隐藏中为外部事件订阅

本文关键字:外部 事件 隐藏 WPF 代码 | 更新日期: 2023-09-27 17:57:32

我试图使用WPF中的代码隐藏订阅外部类中的事件,但显然失败了。

我有一个外部库,它使用ActiveMQ.NMS API与代理通信并异步侦听主题。要完成第二步,我们需要注册到一个名为consumer.Listener的事件。在创建一个引用库的WPF项目并尝试从代码隐藏订阅事件之前,一切都很顺利(在代码隐藏中,我调用了一个负责与代理通信的对象的实例,创建了处理程序并注册了它)。

正如我现在所理解的,我的问题背后的原因是线程亲和性,然而,我仍然很想知道如何在代码背后做我试图做的事情,尽管大多数开发人员会立即鄙视我,因为我甚至想过这样的事情。顺便说一句:有点有趣的是,调试器在没有给出任何理由的情况下,如果想跳过方法中的一些行,就会跳过。

此外,在WPF中处理外部事件的推荐模式是什么?

感谢您的反馈:)

C#,WPF在代码隐藏中为外部事件订阅

我假设当你说"外部事件"时,你只是指由某种对象公开的公共事件。但是,当引用使用ActiveMQ.NMS API的库时,您使用术语"外部"。。。所以我认为在这种情况下,你的意思是它是你的代码库之外的一个库,你导入的东西,引用的东西等等。如果我误解了,请更正/编辑你的帖子。

假设"consumer"是您在项目中引用的库中的一个对象,那么一旦实例化了"consumer",您就应该有一段代码,看起来像:

consumer.Listener += new WhateverTheHandlerEventArgsIsCalledHere(consumer_Listener);

在你输入完"new"后,如果你按两次tab键,intellisense应该会自动为你填写其余的内容。

我不知道为什么你认为大多数开发人员会因为你这么想而鄙视你。。。这通常是一个很好的练习。