0
wpf 형식의 DataGrid가 있습니다. 체크 박스가있는 행이 있습니다. 헤더 체크 박스를 선택/선택 취소하여 모든 행을 선택/선택 취소하고 싶습니다.격자의 모든 행 선택/선택 취소
그러나이 오류가 발생합니다 : "개체 참조가 개체의 인스턴스로 설정되지 않았습니다"chk.IsChecked = false에 있습니다.
C# 코드 :
private void myDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
CheckBox chk = (CheckBox)this.myDataGrid.Columns[0].GetCellContent(e.Row);
chk.IsChecked = false;
checkboxes.Add(chk);
}
XAML 코드는 다음과 같습니다 사전에
<Window x:Class="WpfApplication1.Grid"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Grid" Height="300" Width="300">
<Grid>
<DataGrid x:Name="myDataGrid"
VerticalAlignment="Top"
Grid.Column="0"
AutoGenerateColumns="False"
LoadingRow="myDataGrid_LoadingRow"
Loaded="myDataGrid_Loaded">
<DataGrid.Columns>
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.Header>
<CheckBox HorizontalAlignment="Center"
Click="chk_Click"
VerticalAlignment="Center"
Name="chckAll">
</CheckBox>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chk"
HorizontalAlignment="Center"
HorizontalContentAlignment="Center"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="First Name"
Width="100"
Binding="{Binding FirstName}"></DataGridTextColumn>
<DataGridTextColumn Header="Last Name"
Width="100"
Binding="{Binding LastName}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
감사합니다.
chk 변수가 null 인 것처럼 보입니다 (라디오 버튼을 선택하지 않은 것). 중단 점을 넣고 null인지 확인할 수 있습니까? – Sonhja
예, chk 변수가 null이됩니다. 나는이 코드가 무엇이 잘못되었는지 정말로 모른다 : CheckBox chk = (CheckBox) this.myDataGrid.Columns [0] .GetCellContent (e.Row); –
DataGridRow를 얻으려면 다음 링크를 따라야합니다. http://stackoverflow.com/questions/1976087/wpf-datagrid-set-selected-row – Sonhja