1

私はグループ化を試みていComboBoxますGroupStyle

<ComboBox ItemsSource="{Binding GroupedItems}">
    <ComboBox.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" />
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
        </GroupStyle>
    </ComboBox.GroupStyle>
</ComboBox>

ここで、「GroupedItems」プロパティはListCollectionView「GroupDescription」が適用されたものです。

これはほとんど機能します。ヘッダーは正しいですが、アイテム自体はポップアップに表示されません。なんで?

注: ComboBoxMSDNのスタイル/テンプレートの修正版を使用しています。

4

1 に答える 1

1

MSDNのコントロール テンプレートが間違っていることが判明しComboBox、ドキュメントも間違っています。リソースからスタイル/テンプレートを削除した後、これに気付き、グループ化が正しく表示されました。

Blend を使用して実際の組み込みコントロール テンプレートを抽出した後、 のグループ化機能は、 「Popup」(MSDN にリストされている「PART_Popup」ではなく)、「DropDown」、「DropDownBorder」、「」ComboBoxという名前のパーツに依存していることがわかりました。 DropDownScrollViewer」、および「ItemsPresenter」。

<Popup x:Name="Popup">
    <Grid x:Name="DropDown">
        <Border x:Name="DropDownBorder">
            <ScrollViewer x:Name="DropDownScrollViewer">
                <ItemsPresenter x:Name="ItemsPresenter" />
            </ScrollViewer>
        </Border>
    </Grid>
</Popup>

ありがとうオバマ!マイクロソフト!

于 2015-09-10T23:39:05.727 に答える