C# 如何将CheckBoxColumn添加到自动创建的DataGrid中

C# 如何将CheckBoxColumn添加到自动创建的DataGrid中,c#,wpf,datatable,binding,datagrid,C#,Wpf,Datatable,Binding,Datagrid,我的Wpf应用程序中有一个DataGrid。 此数据驱动程序: ItemSource={bindindsomedatatable}&AutoGenerateColumns=True 现在我想添加一个带有复选框的列,并将每个复选框的状态与DataGird中每行的IsSelected属性绑定 我尝试添加带有DataGridTemplateColumn的复选框cloumn,但无法将复选框绑定到行的状态 <DataGrid x:Name="TableDataGrid" Mar

我的Wpf应用程序中有一个DataGrid。 此数据驱动程序: ItemSource={bindindsomedatatable}&AutoGenerateColumns=True 现在我想添加一个带有复选框的列,并将每个复选框的状态与DataGird中每行的IsSelected属性绑定

我尝试添加带有DataGridTemplateColumn的复选框cloumn,但无法将复选框绑定到行的状态

<DataGrid x:Name="TableDataGrid" 
          Margin="0,0,0,0" 
          CanUserAddRows="True"
          CanUserDeleteRows="True" 
          CanUserSortColumns="False" 
          GridLinesVisibility="All"
          AutoGenerateColumns="True" 
          ItemsSource="{Binding TableData.DataInTable, Mode=TwoWay}">
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Background"Value="#e8e8ec"/>
            <Setter Property="FontWeight"Value="Bold"/>
            <Setter Property="HorizontalContentAlignment"Value="Center"/>
            <Setter Property="BorderBrush"Value="Black"/>
            <Setter Property="BorderThickness"Value="0.5"/>
        </Style>
    </DataGrid.ColumnHeaderStyle>
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox x:Name="DataCheckBox"></CheckBox>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>
您可以使用AncestorType:


@JimiJimi请看如何接受答案和答案
<DataGrid x:Name="TableDataGrid" 
      Margin="0,0,0,0" 
      CanUserAddRows="True"
      CanUserDeleteRows="True" 
      CanUserSortColumns="False" 
      GridLinesVisibility="All"
      AutoGenerateColumns="True" 
      ItemsSource="{Binding MyList, Mode=TwoWay}">
        <DataGrid.ColumnHeaderStyle>
            <Style TargetType="{x:Type DataGridColumnHeader}">
                <Setter Property="Background" Value="#e8e8ec"/>
                <Setter Property="FontWeight" Value="Bold"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="BorderBrush" Value="Black"/>
                <Setter Property="BorderThickness" Value="0.5"/>
            </Style>
        </DataGrid.ColumnHeaderStyle>
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox  x:Name="DataCheckBox" IsChecked="{Binding Path=IsSelected, Mode=TwoWay,
              RelativeSource={RelativeSource FindAncestor,
              AncestorType={x:Type DataGridRow}}}"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>