wpfにデータグリッドがあり、そのデータグリッドに複数の行(アイテム)があり、各行に1つのチェックボックス列があります。チェックボックスがいずれかの行でチェックされている場合、すべての行をチェックインしてから、以下のアクションを実行したいのは私のコードです。ありがとう!
WPF コード
<DataGrid CanUserAddRows="False" AutoGenerateColumns="False"
CellEditEnding="SaveDeliveryValue" LoadingRow="DataGrid_LoadingRow"
Name="ViewOrdersGrid" HorizontalAlignment="Center" Margin="0,10,0,0"
VerticalAlignment="Top" Height="278" Width="520" BorderBrush="#FFA0A0A0">
<DataGrid.Columns>
<DataGridTextColumn Header="Order No" Width="115" Binding="{Binding Path=BONo, Mode=OneWay}" />
<DataGridTextColumn Header="Order Date" Width="100" Binding="{Binding Path=BODate, Mode=OneWay, StringFormat=d}" />
<DataGridTextColumn Header="Total Amount" Width="100" Binding="{Binding Path=BOTotal, Mode=OneWay}" />
<DataGridTextColumn Header="Total Bikes" Width="100" Binding="{Binding Path=BOTatalBikes, Mode=OneWay}" />
<DataGridCheckBoxColumn Header="Delivered" x:Name="DeliveryValueCheck" Width="70" Binding="{Binding Path=BODelivered, Mode=TwoWay}" />
</DataGrid.Columns>
</DataGrid>
C# コード
private void Window_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < ViewOrdersGrid.Items.Count; i++)
{
CheckBox mycheckbox = ViewOrdersGrid.Columns[4].GetCellContent(ViewOrdersGrid.Items[i]) as CheckBox;
if (mycheckbox.IsChecked == true)
{
MessageBox.Show("Checked");
}
}
}