1

リストボックスの itemsSource を複合コレクションに設定しようとしています。

<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 とのバインディングは機能していません。アイテムが選択されたときにビューモデルで選択されたアイテムを取得するにはどうすればよいですか?

4

1 に答える 1

0

xaml で行ったように ItemsSource を設定する代わりに。CompositeCollection を返すコンバーターを使用し、そのコレクションを ItemsSource にバインドすることをお勧めします。CompositeCollection は設定と ExtraViews のコレクションになります

バインディングは のようになりますItemsSource = "{Binding SourceModel, Converter={StaticResource myConverter}}"。コンバーターの Convert メソッドで、sourcemodel.Settings と sourcemodel.ExtraViews から複合コレクションを作成して返します。

ありがとう

于 2013-08-30T12:23:27.597 に答える