[英]How to add a CheckBoxColumn into a DataGrid which is Auto created
我的Wpf应用程序中有一个DataGrid。 此DataDrid: ItemSource="{Bindind SomeDataTable}"
和AutoGenerateColumns="True"
现在,我想添加一个带有CheckBox的列,并将每个CheckBox的状态与IsSelected
中每个Row的IsSelected
属性绑定。
我试图用DataGridTemplateColumn添加一个CheckBox Cloumn,但是无法将CheckBox绑定到Rows的状态。
<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
:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.