【发布时间】:2009-07-10 15:30:30
【问题描述】:
我有一个包含订单列表的客户对象。现在,使用 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 上没有用于订单的属性。 Orders 是 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>
我不想显示所有客户的订单。我只想显示当前选择的客户的订单。
【问题讨论】: