如何在datagrid Silverlight mvvm中检查所有Checkbox?

时间:2013-01-03 08:30:22

标签: silverlight entity-framework mvvm

在我的silverlight5和MVVM项目中,我有一个疑问。

我有一个Datagrid控件,我加载了一些客户的详细信息。

我的Datagrid结构如下。

[CheckBox] | CustomerName | CustomerAge
________________________________________
[CheckBox] | Raj          | 23
----------------------------------------
[CheckBox] | Ravi         | 24
----------------------------------------
[CheckBox] | Rajkumar     | 25
________________________________________


<sdk:DataGrid ItemsSource="{Binding Details}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedItem,Mode=TwoWay}" Name="DG">
<sdk:DataGridTemplateColumn>
  <sdk:DataGridTemplateColumn.HeaderStyle>
     <Style TargetType="sdk:DataGridColumnHeader">
        <Setter Property="Template">
          <Setter.Value>
             <ControlTemplate>
                <Grid>
                  <CheckBox VerticalAlignment="Center" HorizontalAlignment="Center" 
                            Command="{Binding AllCheckedCommand}"/>
                </Grid>
             </ControlTemplate>
          </Setter.Value>
        </Setter>
     </Style>
   </sdk:DataGridTemplateColumn.HeaderStyle>
   <sdk:DataGridTemplateColumn.CellTemplate>
   <DataTemplate>
           <CheckBox IsChecked="{Binding IsSelected,Mode=TwoWay}" Content="Select All" 
                     VerticalAlignment="Center" HorizontalAlignment="Center"/>
   </DataTemplate>
   </sdk:DataGridTemplateColumn.CellTemplate>
   </sdk:DataGridTemplateColumn>

   <sdk:DataGridTemplateColumn Header="Name" MinWidth="130" MaxWidth="180">
   <sdk:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <TextBlock Text="{Binding Name,Mode=TwoWay}" />
       </DataTemplate>
   </sdk:DataGridTemplateColumn.CellTemplate>
   </sdk:DataGridTemplateColumn>


   <sdk:DataGridTemplateColumn Header="Age" MinWidth="130" MaxWidth="180">
   <sdk:DataGridTemplateColumn.CellTemplate>
       <DataTemplate>
           <TextBlock Text="{Binding Age,Mode=TwoWay}" />
       </DataTemplate>
   </sdk:DataGridTemplateColumn.CellTemplate>
   </sdk:DataGridTemplateColumn>
 </sdk:DataGrid.Columns>

如果我检查了顶部标题CheckBox意味着所有CheckBox也都已选中。如何建立这个。

注意:这里(ItemsSource =“{Binding Details}”)详细信息是一个包含名称和年龄的类。

如何实现这一目标?请帮我这样做..

1 个答案:

答案 0 :(得分:1)

我们在WPF聊天室中对此进行了整理。事实证明,DataContext中使用的模型没有IsSelected属性,因此代码没有运行(或编译)。