2011-12-09 2 views
0

私はまだWPFに慣れているので、これは愚かな質問かもしれません。私はタブコントロールの問題の原因を追跡しており、タイトルの質問に対する答えがわからないことを発見しました。Window.DataContextとWindow.Resource ObjectDataProviderは競合しますか

私のMVVM-Liteのプロジェクトテンプレートは、Windowsの開始タグに通常のを置く:

<ObjectDataProvider x:Key="src" ObjectType="vm:MainViewModel" /> 
:私はこの便利な静的リソースを持っている

DataContext="{Binding Source={StaticResource Locator}, Path=Main}" 

そしてどこかから(私は本当に覚えていません)

私はタブコントロールの問題をトラブルシューティングしていますが(私はそれらの詳細についてはここでは言及しません)、私はビューモデルを指し示すこれらの2つの方法がどんな形であれconfilictedかどうか分かりませんでした。ビューモデルの2つの別々のインスタンス? ViewModelLocatorがMainへの静的参照を保持しているとは思いません。とにかく、私は "greenie"ミスをしていないことを確認したかっただけです。 ありがとう、 ジム

答えて

0

これは2つの異なるインスタンスを作成すると確信しています。 MainViewModelコンストラクタにブレークポイントを置き、アプリケーションをデバッグモードで実行することで、簡単に確認できます。

MVVMが普及する前にObjectDataProviderが導入されました。私はWPVMの多くのオブジェクトは、MVVMで廃止されたものだと主張します。なぜなら、これらのオブジェクトとプロパティをViewModelレイヤのコードで作成するからです。あなたの場合、おそらくObjectDataProviderは必要ないと思われますが、代わりにViewModelLocator.Mainを使用できます。

乾杯、 ローラン

+0

あなたは正しいです。私は私のビューモデルの2つのインスタンスを取得していた。それは私のタブコントロールを混乱させることが判明しました。それで私はその問題を解決しました。助けてくれてありがとう。また、フレームワークに感謝します。 – JimBoone

関連する問題