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

原来是ComboBoxMSDN上的控件模板错了,文档也错了。在我从资源中删除样式/模板后,我意识到了这一点,然后分组正确显示。

使用 Blend 提取实际的内置控件模板后,我发现它的分组功能ComboBox依赖于这些命名部分:“Popup”(不是MSDN 上列出的“PART_Popup”)、“DropDown”、“DropDownBorder”、“ 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 回答