繁体   English   中英

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

[英]C#,WPF Subscribing for an external event in code-behind

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

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

正如我现在所理解的那样,我的问题背后的原因是线程关联,但是我仍然很想知道如何从代码隐藏中做我想做的事情,即使大多数开发人员会因为我想到这样的事情而立即鄙视我。 附带说明:调试器在没有任何理由的情况下只是跳过方法中的某些行,如果感觉这样做的话,这有点有趣。

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

感谢您的反馈意见:)

我将假设当您说“外部事件”时,您只是指公共事件,由某种 object 公开。 但是,在提到使用 ActiveMQ.NMS API 的库时,您使用术语外部...所以我假设在这种情况下,您的意思是它是您的代码库之外的库,您导入、引用等的东西。请更正/编辑您的如果我有误解,请发帖。

假设“consumer”是您在项目中引用的库中的 object,一旦您实例化“consumer”,您应该有一段代码如下所示:

consumer.Listener += new WhateverTheHandlerEventArgsIsCalledHere(consumer_Listener);

在您完成输入“new”后,如果您按两次 Tab 键,智能感知应该会自动为您填写 rest。

我不知道为什么您认为大多数开发人员会因为考虑这一点而鄙视您……这通常是一种很好的做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM