我正在 Silverlight 3 中使用 PagedCollectionView 对数据网格中的项目进行分组。 我想检测何时单击组标题,但 6 小时后仍然找不到任何方法来执行此操作。
(这样当单击折叠标题时我可以动态加载组的内容)
数据网格的填充方式如下:
PagedCollectionView 集合 = new PagedCollectionView(orgMembers); collection.GroupDescriptions.Add(new PropertyGroupDescription("生成"));
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);
}
处理数据网格上的 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;
}
}
您可以获得有关被单击的组及其项目集合的信息(如上所示)