在我的 Metro 应用程序中,我需要在 GridView 上显示一组 VariableSizeWrapGrid。在 XAML 中这样做很简单(通过创建 ItemsPanelTemplate 和 GroupStyle)。但是有没有办法在后面的 C# 代码中做同样的事情。
问问题
1186 次
1 回答
1
从这里:
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);
于 2012-08-21T16:42:27.207 回答