У меня есть следующая структура объекта:
Объект AllProducts является ObsCol объектов ProductGroups, ProductGroup является ObsCol объектов LineItems, а объект LineItems является ObsCol объектов LineItem
Вот как они у меня во вложенных списках.
ProductGroup 1
| LineItem 1 |
| LineItem 2 |
| LineItem 3 |
ProductGroup 2
| LineItem1 |
| LineItem 2 |
| LineItem 3 |
| LineItem 4 |
Вот мой ListBox:
<ItemsControl x:Name="lstProductGroups" ItemsSource="{Binding}" ItemTemplate="{StaticResource ProductListItem}">
</ItemsControl>
и шаблоны данных:
<DataTemplate x:Key="LineItemsTemplate">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImageUrl}" Height="50" Width="50" />
<StackPanel Orientation="Vertical" Width="350">
<TextBlock HorizontalAlignment="Left" TextWrapping="NoWrap" Text="{Binding Name}"/>
<TextBlock TextWrapping="Wrap" Text="{Binding Description}" HorizontalAlignment="Left"/>
</StackPanel>
<TextBlock TextWrapping="Wrap" Text="{Binding Price}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="ProductListItem">
<StackPanel x:Name="GridDataHolder">
<TextBlock TextWrapping="Wrap" FontWeight="Bold" Text="{Binding GroupName}" VerticalAlignment="Top" d:LayoutOverrides="Width"/>
<ListBox x:Name="lstLineItems" ItemsSource="{Binding LineItems}" Width="500" ItemTemplate="{StaticResource LineItemsTemplate}" SelectionMode="{Binding IsListType, Converter={StaticResource BoolToSelectionModeConverter}}" ItemContainerStyle="{StaticResource LineItemsStyle}">
</ListBox>
</StackPanel>
</DataTemplate>
То, что я пытаюсь сделать, - это иметь возможность выбирать элементы в каждом из списков и привязывать выбранные элементы к ObsCol из LineItem, называемому «SelectedCartItems» в моей виртуальной машине. Есть идеи?