<DataGrid x:Name="gridView" HorizontalAlignment="Left" Height="263" Margin="10,10,0,0" VerticalAlignment="Top" Width="235" AutoGeneratingColumn="gridView_AutoGeneratingColumn" GotFocus="gridView_GotFocus">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding IsChecked, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
</DataGrid>
//Get count and data of checked parts from gridview
foreach (var row in gridView.ItemsSource)
{
bool IsChecked = (bool)((CheckBox)gridView.Columns[0].GetCellContent(row)).IsChecked;
if (IsChecked)
{
var part = ((TextBlock)gridView.Columns[1].GetCellContent(row)).Text;
var code = ((TextBlock)gridView.Columns[2].GetCellContent(row)).Text;
var um = ((TextBlock)gridView.Columns[3].GetCellContent(row)).Text;
addToPartList(part, code, um);
checkCount += 1;
}
}
このコードの目的は、ユーザーが確認したすべての行から行データを収集することです。 Datagridのデータソースは、グリッドにチェックボックス列が追加されたリストです。問題は、グリッドがスクロールバーが必要な大きさであれば、可視グリッド外の行はbool型に変換されるときにnull参照例外を返すことです。この問題を回避するにはどうすればよいですか?グリッド内でDataGridの行が表示されない場合のNull参照の例外を回避するにはどうすればよいですか?
なぜヌルチェックを使用しないのですか? – Sievajet