DataTable dt = new DataTable();
dt.Columns.Add("a",typeof(bool));
怎么添加这列的Click事件,就是CheckBox的Click事件怎么通过代码来生成,
不是在XAML中写的列,而是通过代码生成的列。
要通过代码生成Click事件,类似这样
DataGrid.CellEditEnding += new EventHandler(DataGrid_CellEditEnding);
大概是这么一个思路,手写的,不保证对
ColumnHeader ch = new ColumnHeader("a", typeof(bool);
ch.Click += ...
dt.Columns.Add(ch);
虽然不知道你的具体需求是什么,但是据我理解就是**DataGrid行具有选中事件,需要对选中行做进一步操作处理**。
前台代码:
<Grid>
<DataGrid Width="800"
Margin="-20,0,0,0"
x:Name="table"
Background="GhostWhite"
IsReadOnly="True"
RowDetailsVisibilityMode="VisibleWhenSelected">
<DataGrid.Columns>
<DataGridTemplateColumn Width="Auto">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<!--行开头添加一个按钮事件,用于数据详情折叠展示效果-->
<Button Click="Expander_Expanded"
Tag="0"
Foreground="White"
HorizontalAlignment="Right" Height="30" Width="35"
Content=""
ToolTip="高级设置"
Margin="0,0,30,0"/>
<!--</Expander.Content>
</Expander>-->
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn
MinWidth="50"
Header="1"/>
<DataGridTemplateColumn
MinWidth="50"
Header="2"/>
<DataGridTemplateColumn
MinWidth="125" Width="1*"
Header="3"/>
<DataGridTemplateColumn
MinWidth="100" Width="1*"
Header="4"/>
<DataGridTemplateColumn
MinWidth="100" Width="1*"
Header="5"/>
<DataGridTemplateColumn
MinWidth="100" Width="1*"
Header="6"/>
<DataGridTemplateColumn
MinWidth="100" Width="1*"
Header="7"/>
<DataGridTemplateColumn
MinWidth="100" Width="1*"
Header="8"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
后台方法:
private void Expander_Expanded(object sender, RoutedEventArgs e)
{
MessageBox.Show("1");
}