複数のアイテムを含むタブコントロールを持つメインウィンドウを作成しようとしています(それぞれがオンデマンドでのみ表示されます)...たとえば、タイプAのアイテム、タイプBのアイテム、およびタイプCのアイテムがあるとします(MVVMパターンを使用) )私のタブアイテムを表し、ユーザーコントロールに関連するオブジェクトの監視可能なコレクションを持つこと(各タブアイテムはユーザーコントロールです)...問題は、それを行う方法がわからなかったことです。
私はtabItemViewModelBaseクラスを持っています:
public class TabItemViewModelBase : ViewModelBase
{
//Fields :
RelayCommand _closeCommand;
//Constructor:
public TabViewModel(string header)
{
this.Header = header;
}
}
私のメインウィンドウデータコンテキストでは、このクラスの観察可能なコレクションがあります:
//Propriétés
ObservableCollection<TabViewModel> _tabItems;
私のメインウィンドウには、TabControlアイテムの次のタグがあります
<TabControl Padding="0" ItemsSource="{Binding Path=Workspaces}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
**<view:ClientView/>**
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
ご覧のとおり、すべてのアイテムはClientViewユーザーコントロールにアタッチされており、tabviewitemを使用してアイテムを作成しています。プロパティまたはobservablecollectionの各要素のコンテンツフォームを指定する方法が必要です...
(ClientListingViewModelクラスとClientCreationViewModelクラスがあります)、それぞれのビューを指定する方法がわからないため、両方を使用することはできません。
ありがとう!