0

既存のWPFプロジェクトがあり、それをMEFを使用したcaliburnに移動したいと思います。

私のシェルはMainViewModelと呼ばれるビューモデルです。これはDefaultWindowManagerを使用してダイアログを開きます。これはログインウィンドウです。これはすべて正常に機能しますが、プログラムにログインした後、少しの間ストールして終了します。MainViewが表示されることはありません。デバッグを使用して、MainViewが作成されることを確認し、アクティブになったり表示されたりすることはありません。

Screen、IShellとNotifyPropertyBase、IShellとIShellからMainViewModelを継承してみました。誰かが私が感謝を試みるためのアイデアや手がかりを持っていますか?

古いビュー/ビューモデルを取得したばかりなので、ビューからビューへのモデルのリンク以外に、MainViewとViewModelでcaliburnを使用していません。これは何かに関係している可能性がありますか?特定のビューモデル/ビューに対してViewModelBinderをオフにする方法はありますか?

4

2 に答える 2

0

あなたの問題が私が持っていたものと同じである場合、それは私をやや遅くしたので、これについて言及します...あなたのシェルに満たされていないいくつかのインポートがある場合、シェルは表示されず、効果はむしろです紛らわしい。属性として[Import(AllowDefault = True)]があることを確認するか、[ImportMany]を使用してください

ただし、デバッグ中にインスタンスがあると言っているので、Caliburn(Micro?)の使用方法に問題がある可能性があります。この場合、Caliburnの例をコピーしてから、機能を追加することをお勧めします。少なくとも、一度機能したことがわかります。

Rgdsジョン

于 2011-02-10T15:36:28.247 に答える
0

実際、caliburnのRob Eisenbergは非常に役に立ち、この問題について私を助けてくれました。

問題は、caliburnに切り替えたときに、LoginViewが最初に開かれたウィンドウであり、MainViewウィンドウが開かれる前に閉じられていたことです。

windowsは、最初に開いたウィンドウをメインウィンドウとして扱います。メインウィンドウが閉じているとき、ウィンドウは他のウィンドウが開いているかどうかをチェックし、開いていない場合はアプリケーションを閉じます。

彼は、loginviewmodelをシェルにし、mainviewmodelを開いた後にそれを閉じるという可能な解決策を提供しました。

于 2011-02-15T18:14:09.827 に答える