Caliburn Micro フレームワークに基づくデスクトップ アプリケーションがあります。すべてがうまく機能します。現在、同じアプリをプラグインとして Outlook に移植しようとしています。
デスクトップ アプリでは、app.xaml 内のエントリに基づいて、Caliburn がブートストラップの場所を認識し、インスタンス化します。
Outlook プラグインの場合、ThisAddIn.ThisAddIn_Startup() 内で明示的にインスタンス化するオーバーライドされたブートストラップを作成しました。もちろん、これは Application オブジェクトを使用しません。
このようなコードを使用して特定のビューを呼び出すこともできます
var windowManager = IoC.Get<IWindowManager>();
windowManager.ShowDialog(new MyViewModel());
これにより、ビュー モデルに関連付けられたビューが Outlook のモーダル ウィンドウに表示されます (したがって、Caliburn Micro が Outlook プラグイン内のビュー モデルからビューを見つけることができることを検証します)。
どうすればよいかわからなかったのは、シェルをインスタンス化して、その機能を使い始めることができるようにすることです。
私のブートストラッパーは BootStrapper から派生し、シェル ビュー モデルの実装を IShell のエクスポートとして MEF コンテナーに登録したので、Caliburn はシェル ビュー モデルを自動的にインスタンス化し、使用を開始することを期待していました。それは起こっていません。
私の目標は、ユーザー アクションに基づいてロードする他のビューのコンテナーとして、プラグインのタスク ペイン内にシェルをロードすることです。
これを機能させる方法に関するアイデアやヒントはありますか? 一般に、Outlook または Office プラグインの作業ウィンドウ内にシェル実装をロードした人はいますか?
ありがとう!