ViewModel:
ItemsSource="{Binding UnionFacadePolygons}"
<ItemsControl ItemsSource="{Binding UnionFacadePolygons}" Panel.ZIndex="2">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<geometry:CustomPolygon Points="{Binding Points, Mode=TwoWay}"
Stroke="{Binding Stroke, Mode=TwoWay}"
StrokeThickness="{Binding StrokeThickness, Mode=TwoWay}"
Fill="Olive" Opacity="0.8"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Мне необходимо создавать ItemsControl выше с помощью кода в зависимости от элементов из ViewModel. Не ItemsSource="{Binding UnionFacadePolygons}" эти элементы,а именно ItemsControl. Как это сделать так чтобы не нарушать MVVM?
Пока я рассматриваю такие варианты:
1) Сделать брать с DataContext информацию и программно создавать на основе нее ItemsControl в children.
2) Сделать мессенджер и отправлять с ViewModel элементы
Заранее благодарю за ваше мнение.
То есть может быть разный Дата контекст и к каждому нужен свой вью?
не datacontext, а itemsource и к нему его DataTemplate Я хочу сделать систему слоев для графики
Ну а айтемсорс дает свой датаконтекст для каждого айтема. И вот он разный.
Обсуждают сегодня