我正在使用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