【问题标题】:Silverlight 3 DataGrid Grouping - Detecting Group Header Click or Header Expand/CollapseSilverlight 3 DataGrid 分组 - 检测组标题单击或标题展开/折叠
【发布时间】:2010-12-24 04:49:57
【问题描述】:

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

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

数据网格是这样填充的:

PagedCollectionView 集合 = new PagedCollectionView(orgMembers); collection.GroupDescriptions.Add(new PropertyGroupDescription("Generation"));

DataGrid1.ItemsSource = 集合;

【问题讨论】:

    标签: collections silverlight-3.0 datagrid paging grouping


    【解决方案1】:

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

        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);
        }
    

    处理数据网格上的 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;
            }
        }
    

    您可以获得有关被点击的组及其项目集合的信息(如上所示)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2013-10-28
      相关资源
      最近更新 更多