2011-05-26 4 views
0

Il ya un GridView qui a plusieurs lignes, ce que je veux, l'utilisateur peut sélectionner plusieurs cases à cocher et à la fin, il appuiera sur un bouton qui va stocker toutes les lignes sélectionnées dans la base de données. J'utilise le modèle Silverlight MVVM pour cela et ma colonne de cases à cocher se présente comme suitCheckbox liaison dans Silverlight MVVM

<c1:DataGridTemplateColumn Header="Select"> 
    <c1:DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <CheckBox IsEnabled="True" DataContext="{Binding Source={StaticResource view}}"></CheckBox> 
      </StackPanel> 
     </DataTemplate> 
    </c1:DataGridTemplateColumn.CellTemplate> 
</c1:DataGridTemplateColumn> 

Répondre

1

Il y a un contrôle appelé DataGridCheckBoxColumn que vous pouvez utiliser directement:

<sdk:DataGrid ItemsSource="{Binding Items}"> 
    <sdk:DataGrid.Columns> 
     <sdk:DataGridCheckBoxColumn Header="Select" 
            Binding="{Binding IsChecked, Mode=TwoWay}"/> 
    </sdk:DataGrid.Columns> 
</sdk:DataGrid> 

Ensuite, sur le bouton de commande, vous pouvez utiliser une requête Linq pour sélectionner les éléments vérifiés comme ceci:

var selected = from i in Items 
       where i.IsChecked 
       select i; 

Ensuite, vous pouvez enregistrer les éléments sélectionnés dans la base de données.

Espérons que cela aide :)

Questions connexes