在我的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}”)详细信息是一个包含名称和年龄的类。
如何实现这一目标?请帮我这样做..
答案 0 :(得分:1)
我们在WPF聊天室中对此进行了整理。事实证明,DataContext
中使用的模型没有IsSelected
属性,因此代码没有运行(或编译)。