在我的metro应用程序中,我需要在GridView上显示VariableSizeWrapGrid组。在XAML中直接执行此操作(通过创建ItemsPanelTemplate和GroupStyle)。但是有没有办法在后面的C#代码中做同样的事情。
答案 0 :(得分:1)
来自here:
using System;
using System.Windows;
using System.Windows.Data;
namespace GroupingSample
{
public partial class Window1 : System.Windows.Window
{
public Window1()
{
InitializeComponent();
}
CollectionView myView;
private void AddGrouping(object sender, RoutedEventArgs e)
{
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
if (myView.CanGroup == true)
{
PropertyGroupDescription groupDescription
= new PropertyGroupDescription("@Type");
myView.GroupDescriptions.Add(groupDescription);
}
else
return;
}
private void RemoveGrouping(object sender, RoutedEventArgs e)
{
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);
myView.GroupDescriptions.Clear();
}
}
}
这里的关键是你从ItemsSource
获得默认视图并在其上设置分组。这一行:
myView = (CollectionView)CollectionViewSource.GetDefaultView(myItemsControl.ItemsSource);