如何捕获事件在datagridColumnHeader中单击CheckBox? [英] How to catch event Click of CheckBox in datagridColumnHeader ?

查看:84
本文介绍了如何捕获事件在datagridColumnHeader中单击CheckBox?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我想要抓住事件点击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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆