2014-10-08 66 views
3

我想爲我的ListView做一個自定義的groupstyle部門,根據我在這裏看到的其他問題在堆棧溢出。GroupStyleSelector爲一個ListView

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爲我的列表視圖,任何想法?

回答

1

GroupStyleSelector是由ItemsControl的露出的代表:

用法:

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

減速:

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

它是不能被從遺傳類型的委託的做的語言規格。

你需要做的是創建一個從StyleSelector一個類派生:

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

在WPF中,使用

<ListView GroupStyleSelector="{StaticResource grpStyleSelector}" /> 

,並從繼承,你選擇GroupStyleSelector將導致「無法派生來自密封類型'System.Windows.Controls.GroupStyleSelector'異常。

相反,使用

<ListView> 
    <ListView.GroupStyle> 
    <GroupStyle ContainerStyleSelector="{StaticResource grpStyleSelector}" /> 
    </ListView.GroupStyle> 
</ListView> 

StyleSelector

繼承你的選擇