私はかなり基本的なWPF UIを持っているので、ユーザーの要求によってTabControlで新しいタブが開きます。ViewModelの管理に関する質問(DesignTimeと実行時間)
<DataTemplate DataType="{x:Type viewModels:UserUploadsViewModel}">
<userControls:UserUploads />
</DataTemplate>
今度は、私は「UserUploadsコントロールの内部を言わせて:TabControlのは、私はこのコレクションにViewModelにインスタンスを追加し、対応するタブの内容は、このようなテンプレートに基づいて表示されるObservableCollection<ViewModelBase>
にバインドされていますこのように、設計を支援するためにXAMLでVMを配線したいとdは:
<UserControl x:Class=".....UserUploads"
.....
DataContext="{Binding Source={StaticResource ViewModelLocater},
Path=UserAdministrationViewModel}">
このプロパティは設計時にモックデータでVMを実行時にライブサービスでVMを返す、となります。
質問:このXAMLは、TabItemsコンテンツをViewModelインスタンスにバインドする際に私がやっていることに干渉し、正しいViewをレンダリングするために上記のdataTemplateに依存していますか?もしそうなら、これらのコンセプトの両方を一緒に働かせる方法はありますか?
これはすばらしく見えます。だから、デザインタイムであれば、その(デザインタイムビューモデル)オブジェクトは配線されますが、実行時には何もしません。 –
はい、それは混和性のために追加されました。 – anivas
素晴らしい! 'IsDesignTimeCreatable = True'を使うとビューにデータが移ります。 'False'に設定すると、データの「形」だけが提供され、盲目的にバインドするのではなく、デザイナーで完全なデータバインディングをサポートします。また、.xamlファイルを使用して、 '{d:DesignData}'でサンプルデータを完全に指定することもできます。 (http://msdn.microsoft.com/en-us/library/dd490796(VS.100).aspxの)と[チュートリアル:[デザイナーでデータにバインドするDesignInstanceを使用したチュートリアル]:参照でサンプルデータを使用してWPF Designer](http://msdn.microsoft.com/en-us/library/ee823176(v = vs.100).aspx) – cod3monk3y