У меня есть объект Customer, у которого есть Список заказов. Теперь, используя шаблон MVVM, я отображаю список клиентов, который является частью CustomerOrderViewModel и «CustomerOrderView». Клиенты отображаются с использованием списка, как показано ниже:
<ListBox BorderThickness="0" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding Path=Customers}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<view:CustomerView />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Теперь мне также нужно отображать ордера, но мне нужно отображать их вне ListBox. Как это:
<StackPanel Grid.Column="1" Grid.Row="0" Margin="10">
<ItemsControl ItemsSource="{Binding Path=Orders}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
Это не работает, потому что в CustomerOrderViewModel нет свойства для заказов. Заказы - это коллекция объектов Customer. Как мне этого добиться?
Вот обновленный пример:
<ListBox BorderThickness="0" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding Path=Customers}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<view:CustomerView />
<StackPanel Margin="20">
<ItemsControl ItemsSource="{Binding Path=Orders}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<view:OrderView />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Я не хочу отображать заказы для всех клиентов. Я просто хочу отобразить заказ текущего выбранного клиента.