Inquiridor
CheckBox em coluna numa datagrid - como seleccionar todas

Pergunta
-
Olá...
Tenho uma datagrid, que tem checkbox uma coluna... eu gostaria de colocar um evento num botão que ao clicar nele, todas as checkbox, dessa coluna na grid, ficassem checkadas!!
código XAML
<DataGrid AutoGenerateColumns="False" EnableRowVirtualization="True" Height="200" HorizontalAlignment="Left" ItemsSource="{Binding}" Margin="22,61,0,0" Name="aP_FamilyDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Top" Width="400">
<DataGrid.Columns>
<DataGridTemplateColumn Header="" Width="20" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Name="SelCkB" Checked="SelCkB_Checked" Unchecked="SelCkB_Unchecked" HorizontalAlignment="Center" VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="idFamilyColumn" Binding="{Binding Path=idFamily}" Header="id Family" Width="SizeToHeader" />
<DataGridTextColumn x:Name="familyColumn" Binding="{Binding Path=Family}" Header="Family" Width="SizeToHeader" />
<DataGridTextColumn x:Name="refColumn" Binding="{Binding Path=Ref}" Header="Ref" Width="SizeToHeader" />
<DataGridTextColumn x:Name="idRouleColumn" Binding="{Binding Path=idRoule}" Header="id Roule" Width="SizeToHeader" />
</DataGrid.Columns>
</DataGrid>
Todas as Respostas
-
Se esta grid está ligada a uma lista de ViewModels, basta criar uma propriedade no ViewModel, fazer o binding e depois fazer o código para setar a propriedade em todos os itens da lista:
<DataGridTemplateColumn Header="" Width="20" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Selecionado}" HorizontalAlignment="Center" VerticalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>foreach (var item in listaItens)
item.Selecionado = true;Bruno
MVP Client Development - http://msmvps.com/blogs/bsonnino Twitter @bsonnino- Sugerido como Resposta Elvis Rodrigues Coach sexta-feira, 3 de fevereiro de 2012 15:15
-
Boa noite Tiago,
Para adicionar o checkbox no cabeçalho do grid faça da seguinte forma, esse é um exemplo que tenho um checkbox no cabeçalho da primeira coluna um checkbox que está vinculado a uma propriedade booleana CheckAll que ao ser marcado, marca todos os itens do DataGrid:
<DataGridTemplateColumn >
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate >
<CheckBox
IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=DataContext.CheckAll}" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding Importar, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"
Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, Path=DataContext.CheckPagamento}">
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Atenciosamente, Paulo R. Pereira de Souza
http://paulosouza.net
E-mail: paulorpereirasouza@hotmail.com.