私のアプリケーションでは、同じview-viewmodelペアを持つ複数のウィンドウを使用します。また、私は統一コンテナを使用します。ユニティコンテナを使用して複数のビュー/ビューモデルのペアを区別する方法
私は最近、Grant Frisken(コードプロジェクト)によるRESXファイルを使用したWPFローカリゼーションモジュールを追加しました。ここで言語を変更すると、ビューモデルのコンストラクタが再度実行され、変数は保存されません。ビューはそのviewModelのインスタンスに設定されたdatacontextを持ちますが、すべてのビューは同じviewmodelを使用しています。
現在、私は間違ったアプローチをとっていると思いますが、もっと良い解決策はありますか?私のXAMLで
var openWindow = new MyView();
openWindow.Show();
:新しいウィンドウで開く
私は新しい言語モジュールを実装するまで、このすべての私のviewmodelで
DataContext="{Binding MyViewModel, Source={StaticResource Locator}}"
private IMyWindowData _data;
[InjectionConstructor]
protected SettingsBaseViewModel(IMyWindowData data)
{
_data = windows;
}
がうまく働きました。言語の変更を選択すると_data変数はなくなりました。注入コンストラクタは、同じタイプの他のウィンドウのデータも持っています。
私は必死にインターネットを検索しましたが、回答は見つかりませんでした。