ItemTemplateSelectorプロパティを見ましたか?
たとえば、コンテンツセレクタークラスを作成します。
public class myContentSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (item != null)
{
VMBase vm = item as VMBase;
switch (vm.Type)
{
case myType.General:
return Application.Current.Resources["GeneralSettings"] as DataTemplate;
default:
return Application.Current.Resources["AdvancedSettings"] as DataTemplate;
}
}
return null;
}
}
そのための静的リソースを作成します。
<local:myContentSelector x:Key="contentSelector" />
そして、ItemsControlで設定します。
<ItemsControl ItemsSource="{Binding mySource}" ItemTemplateSelector="{StaticResource contentSelector}" />
そして、データテンプレートを次の名前に設定します。
<DataTemplate x:Key="GeneralSettings" DataType="{x:Type vm:VMBase}">
<View:GeneralSettingsView/>
</DataTemplate>
<DataTemplate x:Key="AdvancedSettings" DataType="{x:Type vm:VMBase}">
<View:AdvancedSettingsView/>
</DataTemplate>
そんな感じ?