【发布时间】:2022-01-14 13:01:24
【问题描述】:
使用下面的方法,我试图为循环遍历的 DataGrid CheckBoxColumn 中的每一行触发代码。有用!什么不起作用,如果所有框都未选中,我还想触发另一组代码。 现在,无论未选中多少个框,它都会触发代码,除非我选中第一个。我尝试使用布尔标志跳出循环
如何重写我的方法以达到预期的结果?
我的CheckBoxColumn 不是三态的,我还没有研究过,我宁愿不要,除非绝对必要。
public void VerifyInvoices() {
foreach (PaidTrip item in PaidTrips) {
if (item.IsChecked == true) {
ShowPreviewInvoiceDetailed();
First = false;
} else if (item.IsChecked == false && First == true) {
MessageBox.Show("You must choose an invoice to preview first.");
return;
}
}
}
我的CheckBoxColumn:
<DataGridCheckBoxColumn
Width="146" HeaderStyle="{StaticResource CenterGridHeaderStyle}"
Binding="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}">
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="ClickMode" Value="Press"/>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
【问题讨论】: