2011-04-20 2 views
0

J'essaie d'utiliser des styles pour empêcher de répéter le code, en les mettant dans un Disctorat de ressources. Ma question est, quand nous avons un GridViewColumn dans un ListView, lequel des colonnes a un DataTemplate, et dans ce DataTemplate nous avons le CellTemplate avec seulement un CheckBox, pouvons-nous lier l'état de CheckBox quand le DataTemplete est dans un ResourceDictionary?CheckBox état d'un CellTemplate dans ListView

Ce que j'est dans mon XAML:

<ListView Name="listView"> 
    <ListView.View> 
     <GridView AllowsColumnReorder="False"> 
      <GridViewColumn DisplayMemberPath="{Binding [1]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [2]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [4]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [5]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [6]}"/> 
      <GridViewColumn DisplayMemberPath="{Binding [7]}"/> 
      <GridViewColumn> 
       <GridViewColumn.CellTemplate> 
        <DataTemplate> 
         <CheckBox IsThreeState="False" IsChecked="{Binding [8]}" Unchecked="CheckBox_Changed" Checked="CheckBox_Changed"/> 
        </DataTemplate> 
       </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
     </GridView> 
    </ListView.View> 
</ListView> 

Et je suis en train de faire quelque chose comme ça dans la ressource Dictionnaire:

<DataTemplate x:Key="ListViewCheckboxCell"> 
    <StackPanel> 
     <CheckBox IsThreeState="False" IsChecked="Make reference"/> 
    </StackPanel> 
</DataTemplate> 

Et les valeurs de cette colonne est toujours bool.

Merci d'avance!

Répondre

1

Ce que vous avez fait semble correct. Vous devez maintenant écrire

<GridViewColumn CellTemplate="{StaticResource ListViewCheckboxCell}" /> 

Le modèle sera pris en compte, vous pouvez laisser exactement le même modèle que l'original dans votre dictionnaire de ressources: La liaison est dynamiquement résolu, alors quand le XAML sera lu , les liaisons seront automatiquement définies sur l'objet associé, suivant ce que vous avez indiqué

+0

Mais je n'ai pas l'option AutoGenerateColumns activée, je lie les colonnes de la source dans les colonnes de ListView. Et donc je fais ceci ' Miguel

+0

Pourriez-vous s'il vous plaît signaler le code XAML entier pour votre ListView? Je pense avoir une idée de votre problème, j'ai rencontré presque le même problème il y a quelques jours. Si possible, s'il vous plaît modifier votre message original en ajoutant le code entier pour votre ListView et votre collection originale de la liste est liée à (ItemsSource) – Damascus

+0

J'ai ajouté mon code Listview. Le ItemsSource est une table que je vais obtenir à partir d'une base de données. Mais la colonne de la table que je vais lier n'est pas toujours la même. Je vais utiliser ce modèle de case à cocher dans d'autres fenêtres, et la colonne que je vais lier aura un index différent. – Miguel

Questions connexes