我有一個Customer對象,它有一個Orders列表。現在,使用MVVM模式,我顯示了CustomerOrderViewModel和「CustomerOrderView」一部分的客戶列表。客戶使用如下實現的列表框來顯示:MVVM WPF創建子元素
<ListBox BorderThickness="0" Grid.Column="0" Grid.Row="0" ItemsSource="{Binding Path=Customers}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<view:CustomerView />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</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>
我不想顯示該訂單的所有客戶。我只想顯示當前選定客戶的訂單。
我更新了這篇文章。我擔心的一件事是,爲什麼我必須使用ContentControl,爲什麼我不能使用簡單的控件來顯示所有信息。 – azamsharp 2009-07-10 17:53:35