0

在我的 Metro 应用程序中,我需要在 GridView 上显示一组 VariableSizeWrapGrid。在 XAML 中这样做很简单(通过创建 ItemsPanelTemplate 和 GroupStyle)。但是有没有办法在后面的 C# 代码中做同样的事情。

4

1 回答 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 回答