Я мое приложение, у меня есть элемент ItemsControl, в котором находятся нарисованные пользователем фигуры.ViewModel каждой конкретной фигуры наследуется от базовой ViewModel.DataTemplateSelector применяет правильный DataTemplate на основе типа ViewModel фигуры.
в моем win xaml:
<ItemsControl ItemsSource="{Binding MarkupElements}"
ItemTemplateSelector="{StaticResource MarkupTemplateSelector}"/>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas Panel.ZIndex="1" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
в словаре ресурсов:
<DataTemplate x:Key="MarkupLineTemplate" DataType="x:Type vm:MarkupLineViewModel">
<.../>
</DataTemplate>
<DataTemplate x:Key="MarkupCircleTemplate" DataType="x:Type vm:MarkupCircleViewModel">
<.../>
</DataTemplate>
<view:MarkupTemplateSelector
LineTemplate="{StaticResource MarkupLineTemplate}"
CircleTemplate="{StaticResource MarkupCircleTemplate}"
x:Key="MarkupTemplateSelector"/>
Это прекрасно работает, но Expression Blend не позволяет мне редактировать эти шаблоны.Я могу заставить Blend применить определенный шаблон, но затем он добавляет свойство ItemTemplate
к моему набору win.xaml к тому, который я выбрал, переопределяя селектор.
Я использую Light Tookit MVVM,и попытался добавить несколько форм времени разработки различных типов.Blend показывает их, но они не помогают с доступом к шаблонам.
Есть ли способ убедить Blend в том, что мои производные ViewModel действительны для DataContext, что позволяет мне редактировать шаблоны?Это даже проблема?