Silver Light Grid选择所有复选框

时间:2014-07-16 08:17:06

标签: silverlight mvvm datagrid

我是Silverlight的新手。 我有一个datagrid,其中第一列包含一个复选框,让用户选择特定的行。我在datagrid列标题中添加了一个复选框来检查或取消选中所有行。 这就是我添加的方式

<sdk:DataGridCheckBoxColumn Binding="{Binding IsSelected, Mode=TwoWay}" >
                                <sdk:DataGridCheckBoxColumn.HeaderStyle>
                                    <Style TargetType="sdk:DataGridColumnHeader">
                                        <Setter Property="ContentTemplate">
                                            <Setter.Value>
                                                <DataTemplate>
                                                    <CheckBox cal:Message.Attach="[Event Checked]=[Action SelectAllInPage()]; [Event Unchecked]=[Action UnSelectAllInPage()]" Margin="2,0,-13,0" IsChecked="{Binding Path=DataContext.AllChecked, ElementName=LayoutRoot, Mode=TwoWay}"/>
                                                </DataTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </sdk:DataGridCheckBoxColumn.HeaderStyle>
                            </sdk:DataGridCheckBoxColumn>
                                               <sdk:DataGridTemplateColumn Header="Household" Width="100" >
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <CheckBox HorizontalAlignment="Left" x:Name="IsSelected" IsChecked="{Binding IsSelected, Mode=TwoWay}" Margin="5,5,0,0" />
                                            <TextBlock Text="{Binding HouseholdId}" TextWrapping="NoWrap" VerticalAlignment="Center" Margin="0,5,0,0" FontSize="11" />
                                        </StackPanel>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>

功能正常,并且按照预期,但它在第一列中显示两个复选框。 当我删除I​​sSelected复选框时,只显示一个复选框,但不允许选择特定行。 可能是这个问题的原因是什么,我应该怎么做,我假设绑定IsSelected导致此问题 我从DataGridCheckBoxColumn中删除了绑定,在这种情况下它没有显示任何记录

1 个答案:

答案 0 :(得分:0)

在您在问题中显示的xaml中,您声明了两列:一个DataGridCheckBoxColumn和一个DataGridTemplateColumn,其CheckBoxTextBlock组合在一起CellTemplate }。因此,每行将看到两个CheckBox,第一个属于DataGridCheckBoxColumn,第二个属于DataGridTemplateColumn。 删除CheckBoxColumn或从TemplateColumn的CellTemplate中删除CheckBox。