簡體   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