Collections Silverlight 3 DataGrid分组-检测组标题单击或标题展开/折叠

Collections Silverlight 3 DataGrid分组-检测组标题单击或标题展开/折叠,collections,silverlight-3.0,datagrid,paging,grouping,Collections,Silverlight 3.0,Datagrid,Paging,Grouping,我正在使用Silverlight 3中的PagedCollectionView对数据网格中的项目进行分组。我想检测组标题何时被单击,但6小时后仍然找不到任何方法来执行此操作 (这样,当单击折叠的标题时,我可以动态加载组的内容) datagrid的填充方式如下: PagedCollectionView集合=新的PagedCollectionView(orgMembers); collection.groupdescription.Add(新属性GroupDescription(“生成”) Data

我正在使用Silverlight 3中的PagedCollectionView对数据网格中的项目进行分组。我想检测组标题何时被单击,但6小时后仍然找不到任何方法来执行此操作

(这样,当单击折叠的标题时,我可以动态加载组的内容)

datagrid的填充方式如下:

PagedCollectionView集合=新的PagedCollectionView(orgMembers); collection.groupdescription.Add(新属性GroupDescription(“生成”)


DataGrid1.ItemsSource=集合

编写扩展方法以查找特定类型的父元素:

    public static T FindParentOfType<T>(this FrameworkElement element)
    {
        var parent = VisualTreeHelper.GetParent(element) as FrameworkElement;

        while (parent != null)
        {
            if (parent is T)
                return (T)(object)parent;

            parent = VisualTreeHelper.GetParent(parent) as FrameworkElement;
        }
        return default(T);
    }
公共静态T FindParentOfType(此FrameworkElement)
{
var parent=VisualTreeHelper.GetParent(元素)作为FrameworkElement;
while(父级!=null)
{
if(父项为T)
返回(T)(对象)父对象;
parent=VisualTreeHelper.GetParent(parent)作为FrameworkElement;
}
返回默认值(T);
}
处理datagrid上的MouseLeftButtonUp事件:

    private void PassportGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {

        DataGridRowGroupHeader rgh = (e.OriginalSource as FrameworkElement).FindParentOfType<DataGridRowGroupHeader>();
        if (rgh != null && rgh.DataContext is CollectionViewGroup)
        {
            var stuff = (rgh.DataContext as CollectionViewGroup);
            var items = stuff.Items;
        }
    }
private void PassportGrid\u mouseleftbuttoneup(对象发送器,MouseButtonEventArgs e)
{
DataGridRowGroupHeader rgh=(e.OriginalSource作为FrameworkElement)。FindParentOfType();
如果(rgh!=null&&rgh.DataContext为CollectionViewGroup)
{
var stuff=(rgh.DataContext作为CollectionViewGroup);
var items=stuff.items;
}
}
您可以获取已单击的组及其项目集合的信息(如上所示)