我正在尝试为我的ListView创建一个自定义的groupstyle扇区,就像我在堆栈溢出中在这里看到的其他问题一样。

public class TestGroupStyleSelector : GroupStyleSelector
{
    protected override GroupStyle SelectGroupStyleCore(object item, uint level)
    {
            return (GroupStyle)App.Current.Resources["grpStyle"];
    }
}

<ListView GroupStyleSelector="{StaticResource grpStyleSelector}">


我有两个错误:

错误1'TestGroupStyleSelector':无法从密封类型'System.Windows.Controls.GroupStyleSelector'派生

错误2无法将类型为“ TestGroupStyleSelector”的对象应用于期望类型为“ System.Windows.Controls.GroupStyleSelector”的属性。

我已经声明了该类,就像这里显示的其他问题一样,在这一点上我很迷茫,如何为我的列表视图创建groupstyleselector,有什么想法吗?

最佳答案

GroupStyleSelector是由ItemsControl公开的委托:

用法:

    public GroupStyleSelector GroupStyleSelector
    {
        get { return (GroupStyleSelector) GetValue(GroupStyleSelectorProperty); }
        set { SetValue(GroupStyleSelectorProperty, value); }
    }


减速:

   public delegate GroupStyle GroupStyleSelector(CollectionViewGroup group, int level);


它是委托类型,不能从do继承到语言规范。

您需要做的是创建一个从StyleSelector派生的类:

public class GroupStyleSelector : StyleSelector
{
    public override Style SelectStyle(object item, DependencyObject container)
    {
        return base.SelectStyle(item, container);
    }
}

关于c# - ListView的GroupStyleSelector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26260721/

10-09 09:46