分组添加到DataGrid时检查事件触发 - WPF C#

时间:2015-02-23 10:08:29

标签: c# wpf events checkbox datagrid

我在向数据网格添加分组时遇到问题;我定义为“Checkbox.Checked”的事件在不应该被调用时被调用。 当这行代码未被注释掉“collection.GroupDescriptions.Add(new PropertyGroupDescription("_group"));”时,就会发生错误。

在使用此行启动我的应用程序时,任何复选框的第一次检查都会按预期工作,然后在第二次单击时,如果我在数据网格上的任何位置单击,则会触发已检查的事件。

你们有什么想法吗?

感谢。

我在我的DataGrid上定义了这样的事件;

<DataGridCheckBoxColumn.CellStyle>
    <Style>
         <EventSetter Event="CheckBox.Checked" Handler="Method_checked"/>
         <EventSetter Event="CheckBox.Unchecked" Handler="Method_Unchecked"/>
    </Style>
</DataGridCheckBoxColumn.CellStyle>

我已经使用C#中的以下代码添加了对数据的分组;

ListCollectionView collection = new ListCollectionView(listOfData);
collection.GroupDescriptions.Add(new PropertyGroupDescription("_group"));
dgData.ItemsSource = collection;

我已将组添加到我的数据网格中,在xaml中添加以下代码;

<DataGrid.GroupStyle>
    <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
        <GroupStyle.Panel>
            <ItemsPanelTemplate>
                <DataGridRowsPresenter/>
            </ItemsPanelTemplate>
        </GroupStyle.Panel>
    </GroupStyle>

您可能会注意到上面定义的“GroupHeaderStyle”;

<Window.Resources>
    <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type GroupItem}">
                     <Expander x:Name="exp" IsExpanded="True"
                                  Background="White"
                                  Foreground="Black">
                         <Expander.Header>
                              <TextBlock Text="{Binding Name}" />
                         </Expander.Header>
                         <ItemsPresenter/>
                     </Expander>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>

0 个答案:

没有答案