0

タブビューモデルのコレクションを含むMainViewModelがあります。各タブは、異なるタイプのビューモデル(異なるビュー)にすることができます。ユーザーが新しいタブを追加すると、現在のタイプのタブビューが認識されますが(ビューモデルに基づいて)、まったくバインドされません。たとえば、あるビューモデルにはitemsSourceがコレクションに設定されたGridViewが含まれていますが、そのコレクションのgetプロパティにブレークポイントを設定すると、ヒットすることはありません。(ただし、このビューモデルをインスタンス化するときに、このコレクションを新しいObservableCollectionに設定して、NotifyPropertyChangedイベントが発生するようにします)-したがって、ネストされたユーザーコントロール(ビューモデル)のデータコンテキストが間違って設定されていると思います

4

1 に答える 1

0

通常、MVVM モデルでは、ビューモデルをデータ型として、ビューを指定したビューとして整列させるデータ テンプレートを使用して、データをバインドします。MVVM は通常、プレゼンテーションとしてのビューのモデルとデータとしてのビューモデルに従い、通常は app.xaml または型とバインディングの関係のために特別に作成された MainWindowResources.xaml ファイルの XAML のデータ テンプレートにバインドされます。

通常、何かが正しくバインドされていない場合、ビューが表示されているのにビューモデルがバインドされていないため、データを表示または更新する方法がわからないことがよくあります。

EG: 一般的に使用される MSDN リファレンス MVVM: http://archive.msdn.microsoft.com/mag200902MVVM/Release/ProjectReleases.aspx?ReleaseId=2026

<DataTemplate DataType="{x:Type vm:AllCustomersViewModel}">
<view:AllCustomersView />
</DataTemplate>
于 2012-12-16T00:57:52.900 に答える