2009-06-16 8 views
0

Ceci est ma première question ici. Je commence avec WPF et je suis coincé. Voici le problème: J'ai ListView comme suit:WPF ListVoir la question

<UserControl.Resources> 
    <DataTemplate x:Key="FirstCell"> 
     <StackPanel Orientation="Horizontal"> 
      <CheckBox Margin="2"></CheckBox> 
     </StackPanel> 
    </DataTemplate> 
</UserControl.Resources> 

<ListView Name="lvRights"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Width="100" Header="Select" CellTemplate="{StaticResource FirstCell}"/> 
      <GridViewColumn Width="200" Header="Right" DisplayMemberBinding="{Binding Path=Name}" /> 
     </GridView>  
    </ListView.View> 
</ListView> 

Je suis obligatoire la liste à une collection de « rôles », qui ont que Id et Nom. J'utilise ce DataTemplate pour afficher une case à cocher dans la première colonne.

Et voici la question:

Comment puis-je savoir à l'exécution si l'utilisateur a coché une des cases à cocher? Dans la propriété .Items de la liste, j'ai les rôles, mais je ne peux pas obtenir d'informations sur la première colonne. J'ai le sentiment que c'est SOO simple, mais d'une certaine manière, il me manque la réponse.

10x à l'avance.

+0

Je pense maintenant que c'est aussi un problème de conception, parce que je ** devrait ** avoir cette information dans le rôle. Zut. Encore la question reste, je ne peux pas attendre pour passer la phase noob avec wpf ... – Teodor

Répondre

1

Vous pouvez

1) ajouter un gestionnaire de clic à la case à cocher dans le modèle. Dans le code derrière vous pouvez renvoyer le DataContext de la case à cocher à un rôle pour déterminer lequel il est.

2) Vous pouvez ajouter une sorte de propriété booléenne à votre classe Rôle. Vous pouvez ensuite lier la propriété IsChecked de la case à cocher à cette propriété booléenne. Vous pouvez avoir besoin d'un binding converter pour convertir entre la propriété booléenne et la propriété cochée

+0

Merci d'avoir répondu, j'ai juste essayé votre première solution et cela fonctionne! – Teodor