2011-07-28 11 views
1

J'essaie d'utiliser le mode Single Selection pour mon ItemsControl. J'ai donc changé mon ItemsControl dans un ListBox mais je reçois une exception "Un style destiné au type 'ContentPresenter' ne peut pas être appliqué au type 'ListBoxItem'." Quoi de neuf ici? ne puis-je pas utiliser ContentPresenter pour ListBoxes?ContentPresenter avec ListBox

<ListBox SelectionMode="Single" ItemsSource="{Binding}" MinHeight="200" MinWidth="200"> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <UniformGrid></UniformGrid> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 

    <ListBox.ItemContainerStyle> 
     <Style TargetType="ContentPresenter"> 
      <Setter Property="Grid.Row" Value="{Binding X}" /> 
      <Setter Property="Grid.Column" Value="{Binding Y}" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 

    <ListBox.ItemTemplate> 
     <DataTemplate DataType="ObservableCollection"> 
      <Border BorderBrush="Black" BorderThickness="0.5" Background="Beige"> 
       <clr:Cell Content="{Binding Character}"></clr:Cell> 
      </Border> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 
+0

Si votre question n'a rien à voir avec Visual Studio, n'utilisez pas la balise. –

Répondre

5

Le style devrait cibler un ListBoxItem, puisque c'est toujours ce qui est créé. Un peu plus de documentation et d'exemples de modèles ListBox et datatemplate peuvent être trouvés here.

+0

Dans la mesure où je peux dire la première phrase répond à la question tandis que la deuxième ligne embrouille le problème (peut-être l'exemple a changé?). Je voudrais supprimer la deuxième phrase avec un exemple réel '