如何捕获事件在datagridColumnHeader中单击CheckBox? [英] How to catch event Click of CheckBox in datagridColumnHeader ?
问题描述
您好,我想要抓住事件点击datagridColumnHeader中的CheckBox。
Hello, I want catch event Click of CheckBox in datagridColumnHeader.
datagirdTemplateColumn.HeaderStyle = (Style)XamlReader.Load(CreateStyleColumnHeader(documentUserSummary.UserIds[i]));
private string CreateStyleColumnHeader(int userId)
{
StringBuilder sHeader = new StringBuilder();
sHeader.Append("<Style xmlns=\"http://splashurl.com/o2ho2ey TargetType=\"datalocalprimitives:DataGridColumnHeader\">");
sHeader.Append("<Setter Property=\"Template\">");
sHeader.Append("<Setter.Value>");
sHeader.Append("<ControlTemplate TargetType=\"datalocalprimitives:DataGridColumnHeader\">");
sHeader.Append("<Grid>");
sHeader.Append(" <CheckBox Grid.Row=\"1\" Margin=\"7,5,0,0\" HorizontalAlignment=\"Center\" x:Name=\"CheckAll\" Click=\"CheckAll_Click\" ");
sHeader.AppendFormat("Tag=\"{0}\" ", userId);
sHeader.Append(" />");
sHeader.Append("</Grid>");
sHeader.Append("</ControlTemplate>");
sHeader.Append(" </Setter.Value>");
sHeader.Append(" </Setter>");
sHeader.Append(" </Style>");
return sHeader.ToString();
}
你能帮助我吗?
谢谢
推荐答案
您好,
根据您的标记,我在使用样式的datagridColumnHeader中的复选框内看到了您。对于复选框的复选框事件,它与DataGrid之外的场景没有什么不同。以下是供您参考的代码段:
According to your markup, I saw you inside your checkbox in datagridColumnHeader using style. for checkbox's checkbox event, it's not different from the scenario that it outside of the DataGrid. Below is a code snippet for your reference:
<data:DataGrid x:Name=″myDataGrid″ AutoGenerateColumns=″False″>
<data:DataGrid.Columns>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.HeaderStyle>
<Style TargetType=″dataprimitives:DataGridColumnHeader″>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition> </ColumnDefinition>
</Grid.ColumnDefinitions>
<CheckBox x:Name="chkAll" Click="chkAll_Click" Grid.Column="0"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</data:DataGridTemplateColumn.HeaderStyle>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="chkBoxID" Click="chkBoxID_Click" Tag="{Binding Path=ID}" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
code behind:
private void chkAll_Click(object sender, RoutedEventArgs e)
{
CheckBox chk = sender as CheckBox;
bool check = chk.IsChecked.Value;
foreach (CheckBox chkbox in checkboxes)
chkbox.IsChecked = check;
}
有关使用SelectAll CheckBox的Silverlight Datagrid的更多详细信息,请查看:
More details about Silverlight Datagrid with SelectAll CheckBox, please have a look at:
< a href ="http://varshavmane.blogspot.in/2009/10/silverlight-datagrid-with-selectall.html"> http://varshavmane.blogspot.in/2009/10/silverlight-datagrid-with-selectall .html
祝你好运,
Best regards,
这篇关于如何捕获事件在datagridColumnHeader中单击CheckBox?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!