2010-08-30 14 views
0

Ceci est essentiellement une question de suivi à ma question précédente trouvé hereRegroupement des éléments ne tient pas compte de style objets (groupes apparaissent vide)

Je suis en train de regrouper des éléments dans un combobox mais mon problème est que ce soit le GroupDescription est montré ou les articles.

Si j'ajoute collectionView.GroupDescriptions.Add(new PropertyGroupDescription("Team")); alors mon style ComboBoxItem sera ignoré (il n'atteindra jamais un point d'arrêt). Pourquoi donc?

J'ai vérifié le collectionView et il contais 3 groupes avec 2 éléments dans chacun comme il se doit. Mais la liste déroulante affiche uniquement le "nom de regroupement" (c'est-à-dire le nom de l'équipe).

****** ****** EDIT

Le problème semble être dans mon ComboBoxStyle depuis la suppression il rend la vie merveilleuse ...

<Style x:Key="ImageComboBox" BasedOn="{StaticResource {x:Type ComboBox}}" TargetType="{x:Type ComboBox}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ComboBox"> 
        <Grid> 
         <ToggleButton Name="ToggleButton" Template="{StaticResource ComboBoxToggleButton}" Grid.Column="2" Focusable="false" IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}" ClickMode="Press"/> 
         <ContentPresenter Name="ContentSite" IsHitTestVisible="False" Content="{TemplateBinding SelectionBoxItem}" ContentTemplate="{StaticResource DisplayImageWithText}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="3,3,23,3" VerticalAlignment="Center" HorizontalAlignment="Left"/> 
         <TextBox x:Name="PART_EditableTextBox" Style="{x:Null}" Template="{StaticResource ComboBoxTextBox}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="3,3,23,3" Focusable="True" Background="Transparent" Visibility="Hidden" IsReadOnly="{TemplateBinding IsReadOnly}"/> 
         <Popup Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}" AllowsTransparency="True" Focusable="False" PopupAnimation="Slide"> 
          <Grid Name="DropDown" SnapsToDevicePixels="True" MinWidth="{TemplateBinding ActualWidth}" MaxHeight="{TemplateBinding MaxDropDownHeight}"> 
           <Border x:Name="DropDownBorder" Background="{StaticResource WindowBackgroundBrush}" BorderThickness="1" BorderBrush="{StaticResource SolidBorderBrush}"/> 
           <ScrollViewer Margin="4,6,4,6" SnapsToDevicePixels="True"> 
            <Grid x:Name="itemsGrid" Height="Auto" Width="Auto" MaxWidth="{TemplateBinding MaxWidth}"> 
             <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Contained"/> 
            </Grid> 
           </ScrollViewer> 
          </Grid> 
         </Popup> 
        </Grid> 
        <ControlTemplate.Triggers> 
         <Trigger Property="HasItems" Value="false"> 
          <Setter TargetName="DropDownBorder" Property="MinHeight" Value="95"/> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="false"> 
          <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/> 
         </Trigger> 
         <Trigger Property="IsGrouping" Value="true"> 
          <Setter Property="ScrollViewer.CanContentScroll" Value="false"/> 
         </Trigger> 
         <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="true"> 
          <Setter TargetName="DropDownBorder" Property="CornerRadius" Value="4"/> 
          <Setter TargetName="DropDownBorder" Property="Margin" Value="0,2,0,0"/> 
         </Trigger> 
         <Trigger Property="IsEditable" Value="true"> 
          <Setter Property="IsTabStop" Value="false"/> 
          <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible"/> 
          <Setter TargetName="ContentSite" Property="Visibility" Value="Hidden"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

Avez-vous spécifié un ItemTemplate pour les articles? – ASanch

+0

Dans le ComboBoxItemStyle j'ai ... – debe

+0

Voir ma réponse ci-dessous. J'espère que cela aide. Si cela ne vous aide pas à résoudre le problème, vous pouvez peut-être poster plus d'informations sur votre question comme le XAML pour le "ComboBoxItemStyle", et peut-être le XAML complet pour votre instance ComboBox. – ASanch

Répondre

1

Je ne suis pas sûr Qu'est-ce qui cause vos problèmes en fonction des informations que vous avez fournies ci-dessus? Mais le code ci-dessous, qui est une mise à jour à la réponse que je donnais sur le lien que vous avez spécifié, fonctionne bien pour moi:

Styles:

<Style x:Key="ComboBoxItemStyle" TargetType="ComboBoxItem"> 
    <Setter Property="Foreground" Value="Red"/> 
</Style> 

<Style x:Key="ComboBoxStyle" BasedOn="{StaticResource {x:Type ComboBox}}" TargetType="{x:Type ComboBox}"> 
    <Setter Property="ItemContainerStyle" Value="{StaticResource ComboBoxItemStyle}"/> 
</Style> 

ComboBox:

<ComboBox x:Name="comboBox" Style="{StaticResource ComboBoxStyle}"> 
    <ComboBox.GroupStyle> 
     <GroupStyle> 
      <GroupStyle.HeaderTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Name}"/> 
       </DataTemplate> 
      </GroupStyle.HeaderTemplate> 
     </GroupStyle> 
    </ComboBox.GroupStyle> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Name}"/> 
     </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

Espérons que cela vous aider à résoudre votre problème.

+0

Votre réponse et commentaire fait apporter quelques modifications et c'est le ComboBoxStyle que c'est le méchant ... mis à jour la question avec le code de style complet – debe

+0

Je vois, dans votre ComboBoxStyle, changer le en . Je parie que ça devrait le réparer. Dites-moi si c'est le cas. =) – ASanch

+0

travaillé comme un charme. Est-il toujours supposé être un ItemsPresenter au niveau le plus bas ou? – debe