2015-09-10 59 views
0

我試圖分組的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」。

這幾乎奏效:標題正確,但項目本身不會出現在彈出窗口中。爲什麼?

注:我正在使用ComboBox styles/templates on MSDN的修改版本。

回答

0

事實證明,MSDN上的ComboBox控制模板是錯誤的,而且文檔也是錯誤的。在我從我的資源中刪除樣式/模板後,我意識到這一點,然後分組顯示正確。

萃取後,實際內置使用混合控制模板,我發現ComboBox的分組功能依賴於這些命名的部分:「彈出」(「PART_Popup」作爲被列入MSDN),「下拉菜單「,」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> 

謝謝奧巴馬!微軟!