私はWPFアプリケーションを構築しています。今まで、ほとんどのViewModelは厳密に独自のコードを操作していました。 私は最近、基底クラス "ApplicationViewModel
"を作成して共通コードをその中に移行することに決めました。ほとんどの場合、これは正常に動作しますが、問題が発生しています。View Model Baseクラスのインスタンスを1つだけ保証する方法はありますか?
は、私の継承のviewmodelsは、このベースのviewmodelの独自のインスタンスを産卵していることが表示されます。結果として; ClassAのメソッドが基本クラスの変数を変更した場合、ClassBはnullと同じ変数を登録するか、以前の値が何であってもそれを登録します。
は当初、私は、Microsoftのユニティコンテナにインスタンスを登録しても問題が解決するだろうと思った
public App()
{
Container.RegisterType<ApplicationViewModel>(new ContainerControlledLifetimeManager());
}
が、それは何も変わっていません。
研究は、静的クラスを有効にした後、私は見つけましたが、私はそのルートを頭の前に、私は別のソリューションを好むだろう明白な答え。私のプログラムの機能の多くが再作業を必要とするかもしれません。
シングルトンインスタンスプロパティが基本クラス宣言でも動作するかどうかはわかりません。
だから私は、私の質問があるとしますすべての私のviewmodels全体で使用されてどのように私はこれのviewmodel基底クラスの同じインスタンスを確実にするでしょうか?
すべてのviewmodelsは、このベースのviewmodelから継承した場合、単一インスタンスの共有が不可能であり、それは意味をなさない。 –
別の角度があります。単一の基本クラスインスタンスのユースケースは何ですか? –
クラス構造の概要を転記します。小さなC#は説明よりはるかに明確です。あなたが描いていることはあまり明らかではありません。 –