我在Silverlight 3中使用PagedCollectionView对数据网格中的项目进行分组。我想检测单击组标题的时间,但是6小时后仍无法找到任何方法。
(因此,当点击折叠标题时,我可以动态加载组的内容)
数据网格的填充方式如下:
PagedCollectionView集合= new PagedCollectionView(orgMembers); collection.GroupDescriptions.Add(new PropertyGroupDescription(“Generation”));
DataGrid1.ItemsSource = collection;
答案 0 :(得分:4)
编写扩展方法以查找特定类型的父元素:
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);
}
处理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;
}
}
您可以获取有关被点击的群组及其项目集合(如上所示)
的信息