我正在尝试将列表框的itemsSource设置为compositecollection。
<ListBox x:Name="moduleMenu" SelectedItem="{Binding SelectedSourceViewDetail}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ListBox.ItemsSource>
<CompositeCollection>
<ListBoxItem DataContext="{Binding SourceModule.Settings}" Content="{Binding Name}"/>
<CollectionContainer Collection="{Binding SourceModule.ExtraViews}" />
</CompositeCollection>
</ListBox.ItemsSource>
</ListBox>
然而,与selectedItem的绑定不起作用。当项目被选中时,如何在viewmodel中获取所选项目?
答案 0 :(得分:0)
而不是像在xaml中那样设置ItemsSource。我建议你使用convert返回CompositeCollection并将该集合绑定到ItemsSource。 CompositeCollection将是Settings和ExtraViews的集合
您的绑定看起来像ItemsSource = "{Binding SourceModel, Converter={StaticResource myConverter}}"
。在Convert方法中,从sourcemodel.Settings和sourcemodel.ExtraViews创建复合集合并返回。
由于