問題タブ [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.
c# - MEFでEventAggregator(または他の何か-IoCかもしれません)を使用する
私は現在MEFプロジェクトを構築しているので、実際のアプリケーションでそれを使用する方法を学ぶことができます。データベース接続やその他の集中型データベース操作を提供するために、DataHandlerモジュールを正常にインポートしました。
今、私は他のインポートされたモジュールにメソッドを提供する方法を考えています。たとえば、セキュリティモジュールがデータベースへの接続を必要とする場合、データベース接続を要求できます。これで、ホストアプリケーションがDataHandlerを公開するときに、DataHandlerが使用可能かどうかをモジュールが検出する方法があります。したがって、EventAggregatorDbConnection
を使用して、サブスクライバー(セキュリティモジュール)が単にイベントを発生させ、オブジェクト を取得するタイプのイベントを公開する方法があるかどうか疑問に思っています。
EventAggregatorが答えである場合、その方法についていくつかのヒントを使用できます。私はまだ研究中であることを覚えておいてください...単にcodezを求めているだけではありません。そこにもっと良い解決策があるなら、私はオプションに興味があります。
私は現在、DenisVuykaによるこの投稿をレビューしています
編集
EventAggregatorは、使用するのに適切なツールではないようです。ホストアプリに実装できる、ゆるく結合されたメッセージングのようなものはありますか?サービスロケーターまたはコマンドパターンは実装できるものですか?
events - Caliburn.Microおよびイベントアグリゲーター-不要な呼び出しハンドルメソッド
2つの画面間でメッセージを公開/処理する際に1つの問題があります。
私のシナリオは次のとおりです。
メッセンジャー画面、マスター画面、チャット画面での公開、スレーブ画面です。サーバーからのメッセージを処理するメッセンジャービューモデル。
チャット画面はメッセンジャー画面にメッセージを公開できます。そして、メッセンジャービューモデルはこのメッセージをサーバーに送信します。
メッセンジャークラスは次のようになります。
スレーブ画面クラスは次のようになります。
私の問題は次のとおりです。
最初の問題は次のとおりです。
- クラスChatViewModelからメソッドSendRpを呼び出します。
- ChatViewModelのメソッドvoidPublish()を呼び出します。
- 次に、MessengerViewModelクラスからメソッドvoid Handle()を呼び出します
- 次に、ChatViewModelクラスからメソッドvoid Handle()も呼び出します。
ChatViewModelクラスでメソッドHandle()を呼び出したくありません。ChatViewModelからMessengerViewModelにメッセージを送信すると、ChatViewModelクラスのメソッドHandleとも呼ばれるのはなぜですか?
私の2番目の問題は:
特定のスレーブ画面でのみMessengerViewModelメッセージから公開したい。
MessgerVieModelにはキューメッセージがあります:{msg1、msg2、msg3、...、msgN}
公開したい:
- スレーブ画面#1のmsg1。
- スレーブ画面#2のmsg2
- ..。
- スレーブ画面#3のmsg3
c# - where句でジェネリックを使用してジェネリックメソッドを作成するにはどうすればよいですか? (泥のように透明な男!)
これを行う方法はありますか:
ユーザーがTPayload
パラメーターを指定する必要はありませんか?
mvvm - ViewModel から ViewModel への通信
次のシナリオを考えます。
- ViewModelA は ViewModelB を起動します (もちろん、Ioc と DI を使用して必要な型を解決する共通のコントローラーを介して)。
- ViewModelB は、ViewModelA でプロパティ値を設定する必要があります。
ViewModelA をコンストラクター インジェクションで ViewModelB に単純にインジェクトし、プロパティを直接設定するだけではダメですか?
または…</p>
ViewModel 間のすべての通信を処理するために、Prism の EventAggregator のようなメッセージング システムを使用する必要がありますか?
簡単なので注入アプローチが好きですが、私の本能は何かが足りないと言っています. 私の盲点を埋めるのを助けるために、あなたの集合的な知恵を求めます.
wpf - MVVW で、ある ViewModel から別の ViewModel にイベントを伝達するにはどうすればよいですか?
私は MVVW パターンにまったく慣れていないので、非常に基本的な質問をしている場合はご容赦ください。
私は 2 つの ViewModel を持っています。それらを TreeViewViewModel と ListViewViewModel と呼びます。TreeViewViewModel は、そのビューの IsSelected プロパティにバインドします。IsSelected が変更されるたびに、ビューを更新できるように ListViewViewModel に通知する必要があります。
オンラインでいくつかの調査を行った後、良い解決策のように見える EventAggregator に出会いました。
これは正しい解決策ですか?もしそうなら、これを実装するにはどうすればよいですか?または、検討すべきより良い解決策はありますか?以下は、EventAggregator がイベントを発行する ViewModel にどのように統合されるかを簡略化したものです。
wpf - Rhino モックと PRISM EventAggregator
私は非常に単純に見える何かをする必要がありますが、それを達成することはできません。
イベントアグリゲーター イベントへの任意のサブスクリプションのアクションとフィルター デリゲートを呼び出す単体テストを記述できる必要があります。
たとえば、テストする必要があるクラスには、次のコードがあります。
this.OnViewRequestPublished
テストでメソッドとメソッドを呼び出す必要がありthis.EventFilter
ます。
テストでクラスのインスタンスを使用しようとしましたEventAggregator
が、ディスパッチャーが存在しないとイベントが発生しません。これは単体テストでは役に立ちません。
したがって、Rhino Mocks を使用したいのですが、必要なことを達成する方法がわかりません。
ありがとう
ディーン
c# - Prism Event Aggregator またはコマンドを傍受するためのその他のパターンでメッセージをキャンセルしますか?
Prism イベント アグリゲーターでのメッセージのブロードキャストをキャンセルする方法を知っている人はいますか?
かなり標準的なコマンド/イベント メッセージングを実行しようとしています。シーケンス図で説明します。
ここで、検証を追加したいと思います。検証がコマンドをインターセプトし、適用する有効なコマンドであるかどうかを判断し、そうでない場合はそのブロードキャストをキャンセルする必要があることは理にかなっています。本質的に、これは私が欲しいものです:
の行に沿って何かを行う方法を知っている人はいますか
または、使用する別のより良いパターンはありますか?
wpf - 選択したオブジェクトをWPF/Silverlightの別のコントロールに送信しますか?
私は、2 つのユーザー コントロールを持つビューを持っている WPF プロジェクトに取り組んでいます。これは基本的に、グリッドを持つ UserControl と、DataGrid で選択されたオブジェクトを編集するための編集パネルを持つ別の UserControl です。編集パネル コントロールは、他のコントロールで選択したオブジェクトのプロパティを編集するためのテキスト ボックスと、保存するためのボタンで構成されます。私がやりたいことは、選択したオブジェクトを編集パネルに渡すことです。つまり、グリッドでオブジェクトが選択されるたびに、編集パネルが更新されて同じオブジェクトが選択されます。これを行う最善の方法は何ですか?助けてください?例はスーパーです:0)
events - MVVM のイベント アグリゲーター
私はしばらくの間、Silverlight と MVVM (最も単純な形式では、手作りと言えます) を使用していますが、イベント アグリゲーターとは何か (およびこれを実装する方法) をほとんど理解していません。
この名前の背後にあるものは何ですか?誰かがこれを簡単に説明できますか (またはリンクを投稿できますか?)。
c# - 文字列のイベント名を持つ古い CAB イベント システムのように Prism EventAggregator を使用する
Prism の eventaggregator は常に見られますが、GetEvent でのみ使用されますが、これは非常に奇妙です。私は古い CAB イベント システムに慣れています。現在は Marlon Grech の Mediator 実装を使用しています。文字列定数を定義しているため、単純な int または値型の場合、データを起動/ラップするために余分なクラスを作成する必要はありません。
Prismn の eventaggregator で同じことを行うにはどうすればよいですか