<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 참조 예외가 발생하지 않도록하려면 어떻게해야합니까?
왜 Null 체크를 사용하지 않습니까? – Sievajet