Как в концепции MVVM динамически добавлять элементы? Необходимо создавать произвольное количество элементов например Border и располагать в произвольном месте окна.
Asked
Active
Viewed 243 times
1 Answers
1
Динамический список элементов в WPF делается одним способом — через ItemsControl .
Если вы хотите располагать элементы не линейно, вам нужно переопределить ItemsPanel, например, как это сделано здесь:
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas IsItemsHost="True"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<!-- это привязка координат контейнера к VM -->
<Setter Property="Canvas.Left" Value="{Binding Position.X}"/>
<Setter Property="Canvas.Top" Value="{Binding Position.Y}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<!-- тут описываете, как выглядит ваш элемент -->
<!-- в вашем случае это Border -->
<Border ... />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
VladD
- 206,799
