問題タブ [eventaggregator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - Wpf MVVM UI はモジュール性、イベントアグリゲーターの実装を更新しません
私は現在、プリズム IEventAggregator を使用して、異なるモジュールの 2 つのビュー間の wpf 通信を実験しています。パブリッシング モジュールとサブスクライブ モジュールは正常に動作していますが、何らかの理由で、サブスクライバー UI が更新されない理由がわかりません。サブスクライバー モジュールに msgbox を表示するボタンを配置して、それが確実に受信され、実行されるようにします。INotifyPropertyChangedを適切に実装していると思います。
サブスクライバー ビューのコード ビハインドにサブスクライブを配置すると、希望どおりに機能します....間違った方法で実行しますか? 私を修正してください。ありがとう。
モジュールメッセージパッシング用の別のクラス。このクラスはこの投稿からのものです http://www.shujaat.net/2010/12/wpf-eventaggregator-in-prism-40-cal.html
出版社 :
加入者 :
サブスクライバー ビューのコード ビハインド
メッセージを表示するバインディング部分
c# - ルーズリー結合されたモジュール プリズム間で動的オブジェクトを共有しますか?
静的参照やその他の DI/IoC ソリューションdynamic
を使用せずに、モジュールの型オブジェクトを他のモジュール間で共有することは可能ですか?interface
Core.dll
アセンブリに次のような GlobalEvent があるとします。
そしてModuleA.dll
(への静的参照を持っていますCore.dll
)で、次のように公開します:
およびModuleB.dll
( への静的参照がCore.dll
ある) で、次のように購読します。
良い、
このソリューションの欠点は何ですか? それは可能ですか?サポートされている場合、.NET の他の CLR 言語で作成されたモジュールをサポートしていますか?
前もって感謝します :)
system.reactive - リアクティブ拡張にメソッドがありません
RX(Reactive extensions) を使用してイベント アグリゲーターを実装しようとしていますが、使用しているコードはここにありますが、 subject.AddDisposableメソッドがありません。誰でも私を助けることができますか?おそらく古いバージョンなので、Rxの新しいバージョンではこのメソッドは削除されましたか? これが当てはまる場合、これを実装する正しい方法は何ですか?
ipad - TinyMessengerとMonotouch
iPadアプリケーションでTinyMessengerを使用しようとしています。iPadアプリケーションにはUIViewControllerがほとんどありません。TinyMessengerを介したこれらのコントローラー間の通信を確認したいと思います。私は手順を次のように理解しています
ステップ1-メッセージハブを作成します[?]
ステップ2-メッセージを公開する[UIViewController1で]
ステップ3-[UIViewController2で]メッセージをサブスクライブする
そして、MyMessageは以下のように定義されています
これがこのセットアップを機能させるための正しいステップであるかどうかアドバイスしてください。そして、私はメッセージハブをどこに作成すべきかわかりません。メッセージハブは、任意のUIViewControllerからアクセスできるように、グローバルである必要があると思います。AppDelegateでmessagehubを作成できますか?AppDelegateでメッセージハブを作成する場合、UIViewController1からメッセージハブにアクセスするにはどうすればよいですか?
助けに感謝します。
prism - 条件付きアクションのイベント アグリゲーター
私は、イベントアグリゲーターを使用してグローバルタイプのメッセージを送信し、シェルによって取得される WPF Prism アプリケーションの開発に携わっています。たとえば、ビューモデルはトースト メッセージを表示する必要があるかもしれませんが、それがどのように表示されるかはあまり気にしません。この場合、シェルはこれらのイベントを処理し、アプリケーション全体でそれらに作用するようにセットアップされます。
私が持っている質問は、特定のビューでトースト メッセージを別の方法で表示したい場合、どうすればよいかということです。グローバルなアプローチは非常にシンプルなので気に入っていますが、特殊なケースに合わせてカスタマイズするにはどうすればよいですか?
wpf - Prismのイベントの発信者をどのように区別できますか?
Prismのイベントアグリゲーターを使用しており、コンポジットコントロールからイベントを公開しています。しかし、開発者が同じフォームでコントロールの2つのインスタンスを使用する場合、サブスクライバーはどのようにイベントを区別できますか?ベストプラクティスは何ですか?
ありがとうございました。
wpf - EventAggregator と Microsoft Prism ライブラリを使用してサブスクライブされたメソッドからデータを返す方法
MVVM と を使用して、WPF プロジェクトに取り組んでいMicrosoft Prism libraries
ます。したがって、クラスを介して通信する必要がある場合は、クラスを使用し、Microsoft.Practices.Prism.MefExtensions.Events.MefEventAggregator
以下のようにイベントを発行してメソッドをサブスクライブします。
公開するには:
myEventAggregator.GetEvent<MyEvent>().Publish(myParams)
購読するには:
myEventAggregator.GetEvent<MyEvent>().Subscribe(MySubscribedMethod)
しかし、私の質問は次のとおりです。イベントを発行した後、「サブスクライブされたメソッド」からデータを返す方法はありますか??
c# - 別のクラスの EventAggregator を使用して Window の ViewModel のプロパティを更新する
だから..私はいくつかのコアクラスを持っています。いくつかのモジュールをロードしている間、EventAggregator.GetEvent().Publish() を使用してステータス ウィンドウに通知を送信しようとしています。ステータス ウィンドウの表示:
StartProgressWindow がステータス ウィンドウ イベントを開始し、InitializeCore メソッドがすべてのモジュールをロードしている場所です。
ステータス通知の送信:
サブスクライバー:
ステータス プロパティ:
バインディング:
そして、実際には、問題:
プロパティは、送信先のすべてのステータスで変化します。でもUIには反映されず、フォーゼンです。ViewModel のクラスのコンストラクタで Status プロパティの値を「Some string」に設定したところ、もちろんうまく反映されます。私が間違っていることは何ですか?ありがとう、パベル!
c# - コンダクターとイベントアグリゲーターによる階層ナビゲーション
これが私のアプリのアーキテクチャです。私は別の指揮者の子として指揮者を持っていることに注意してください。そして、各コンダクターがその子からメッセージを受信するための IHandle があります。メッセージの種類は、ナビゲートするためだけにメッセージを使用するのと同じです。私の問題は、ShellView の EventAggregator をその子に渡すことです。
NewConnectionView の EventAggregator はどうですか? 私はそれを使用しているので、ShellView をナビゲートするために EventAggregator です。そして、その ActiveItem をナビゲートするのは子供たちです。
1 つの ViewModel でこれら 2 つの EventAggregators を分離する方法。
ShellView & NewConnectionView ==> Conductor.Collection.OneActive
現在、私のアプローチでは、NewConnectionShellView (Screen) を NewConnectionView の (Conductor) 親として使用して、EventAggregator を分離しています。しかし問題は、NewConnectionView の子の DisplayName をメイン ウィンドウ (ShellView) に表示できないことです。
私はMEFを使用していないことに注意してください。私の問題の回避策はありますか?
c# - イベント アグリゲーターによって発生したイベント サブスクリプションの数を制限するにはどうすればよいですか?
event aggregator を使用して発生したイベントのサブスクリプションの数を制限する必要があります。これを達成するにはどうすればよいですか?