моя цель - положить 3-ю обертку под 2-ю. Для этого макета я использую сочетание док-панели и стек-панели.
- 1-я обертка представляет собой стековую панель этикеток
- 2-я оболочка - это элемент управления (список членов) с док-панелью в качестве шаблона.
- 3-я оболочка — это элемент управления с док-панелью в качестве шаблона (вложенный список адресов каждого члена).
Просмотреть
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible">
<DockPanel>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Label Style="{StaticResource MinWidthLeft}" Content="Typ Adresu"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Imie"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Nazwisko"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Nazwa Firmy"/>
<Label Style="{StaticResource MinWidthLeft}" Content="NIP"/>
<Label Style="{StaticResource MinWidthLeft}" Content="REGON"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Ulica"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Adres"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Kod pocztowy"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Miasto"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Kraj"/>
<Label Style="{StaticResource MinWidthLeft}" Content="Dodatkowe informacje"/>
</StackPanel>
<ItemsControl ItemsSource = "{Binding listContractorAddAddress}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Style="{StaticResource MinWidth}" Content="Dodaj Adres" Command="{Binding Path=AddAddress}"/>
<TextBlock Style="{StaticResource MinWidth}" Text="{Binding Member.Login}"/>
<TextBlock Style="{StaticResource MinWidth}" Text="{Binding Member.Email}"/>
<ItemsControl ItemsSource = "{Binding Addresses}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
<Button Style="{StaticResource MinWidth}" Content="Edytuj" Command="{Binding Path=EditAddress}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.TypAdresu}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Imie}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Nazwisko}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.NazwaFirmy}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.NIP}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.REGON}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Ulica}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Adres}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.KodPocztowy}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Miasto}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.Kraj}"/>
<TextBlock Style="{StaticResource MinWidthLeft}" Text="{Binding MemberAddress.DodatkoweInformacje}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!--<DockPanel/>-->
<StackPanel DockPanel.Dock="Top" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<!--<DockPanel/>-->
<StackPanel DockPanel.Dock="Top" Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</DockPanel>
</ScrollViewer>
</Grid>
Я потратил на это много времени, я пытался использовать:
- только стековая панель с горизонтальной/вертикальной ориентацией (я сделал такой же макет, как и с док-панелью).
- только сетка, но у меня это доза не работает - беда и пустая трата времени (мне сложно сказать, что я делал не так, каждый ряд был с нужной стороны, а не один под другим)
Спасибо!