C#-WPF 防止 itemsource 改变时触发数据网格的复选框事件

问题描述 投票:0回答:0

我有一个包含各种单元格的数据网格。我使用一个复选框事件将 x 金额添加到全局余额帐户。数据仅在一年内有效。因此,如果我更改当前年份(通过组合框选择)以评估或检查某些内容,我将更改数据网格的数据源(

ObservableCollection<Member>
)。问题是被调用的数据源更改过程的最后一个事件是所有复选框的检查事件。 This of course changes the calculation when a different source is being selected.

如何防止调用这些事件。是否有类似最后一个事件的东西,我可以使用它来设置一个标志(“newSourceInitialized”)来启用检查事件,这样它们只会在用户实际点击它们时触发?

WPF代码在这里:

<DataGrid.Columns>
                    <DataGridTextColumn Header="ID" Binding="{Binding Path=id}"/>
                    <DataGridTextColumn Header="Vorname" Binding="{Binding Path=firstname}"/>
                    <DataGridTextColumn Header="Nachname" Binding="{Binding Path=lastname}"/>
                    <DataGridTextColumn Header="Geburtstag" Binding="{Binding Path=birthday, StringFormat={}\{0:dd.MM.yyyy\}}"/>
                    <DataGridTemplateColumn>
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox Name="cbxPayed" IsChecked="{Binding Path=payed}" Checked="cbxPayedChecked" Unchecked="cbxPayedUnchecked" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    <DataGridTextColumn Header="Bemerkung" Binding="{Binding Path=note}"/>
                </DataGrid.Columns>

现在我在启动时阻止检查事件,并使用数据网格的“加载”事件重新激活它们。这适用于启动。现在我想要用于加载不同年份的数据源更改函数的相同内容

c# wpf events checkbox datagrid
© www.soinside.com 2019 - 2024. All rights reserved.