[英]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.