我正在使用WPF 4.0和Caliburn Micro在C#中开发应用程序。我需要绑定一个ViewModel到一个DataTemplate中的控件之一的列表框。这个DataTemplate在外部列表框中用作ItemTemplate,并且...不,我想这不是很清楚。WFP将ViewModel绑定到另一个列表框中的列表框,这两个列表框都使用DataTemplates
让我试着解释一下我需要做的一个例子,带有几间房间的酒店,每间房间有几个客人。
酒店屏幕上有一个名为Rooms的列表框,该列表框绑定到一个名为Rooms的房间,其中包含RoomViewModel项目。该房间列表已命名RoomTemplate,看起来像这样一个ItemTemplate:
<ListBox x:Name="Rooms" ItemTemplate="{DynamicResource RoomTemplate}"/>
随着RoomTemplate看起来像这样(高度简化):
<DataTemplate x:Key="RoomTemplate">
<DockPanel VerticalAlignment="Top">
<TextBlock x:Name="RoomDescription" Text="{Binding Path=RoomDescr}" />
<ListBox x:Name="Guests" ItemTemplate="{DynamicResource GuestTemplate}"/>
</DockPanel>
</DataTemplate>
RoomViewModel包含含有GuestViewModel项目一个ObservableCollection命名的客人。 RoomTemplate包含一个名为Guests的列表框,它应显示Guests集合中的GuestViewModel项目。 GuestTemplate将包含多个需要绑定到GuestViewModel的TextBlocks。
第一个绑定到listbox的房间到集合房间由CM的约定活页夹处理并且工作得很好。我的问题是GuestTemplate中listbox Guests的第二个绑定。我如何将它绑定到Rooms集合中包含的RoomViewModels中的Guest项目?
好的,我已经解决了。解决方案是ItemsSource =“{Binding Guests}”,我已经尝试过了,但是我的代码中有另一个错误,所以它不起作用。多谢你们! – Liell