2016-05-01 60 views
0

我發現了ListView.GroupStyle可以解決多個標題的問題。假設我在XAML中已經此列​​表:如何在代碼後面創建動態GroupStyle?

<ListView x:Name="Match"> 
    <ListView.View> 
      <GridView> 
        <GridViewColumn Header="Time" Width="50" DisplayMemberBinding="{Binding Time}" /> 
        <GridViewColumn Header="Minute" Width="70" DisplayMemberBinding="{Binding Minute}"/> 
        <GridViewColumn Header="Home" Width="Auto" DisplayMemberBinding="{Binding Home}"/> 
        <GridViewColumn Header="Away" Width="Auto" DisplayMemberBinding="{Binding Away}"/> 
        <GridViewColumn Header="1 Time" Width="80" DisplayMemberBinding="{Binding Result}"/> 
        <GridViewColumn Header="2 Time" Width="80" DisplayMemberBinding="{Binding MatchSecondTime}"/> 
      </GridView> 
     </ListView.View> 

現在假設我想添加多個GroupStyle在this example。 如何在代碼後面創建GroupStyle?

我真的試圖爲:

Style myStyle = new Style(typeof(GroupItem)); 
Setter setter = new Setter(); 
setter.Property = MarginProperty; 
setter.Value = new Thickness(0, 0, 0, 0); 
myStyle.Setters.Add(setter); 

Setter setterTemplate = new Setter(); 
setter.Property = TemplateProperty; 
setter.Value = Template; 

GroupStyle gs = new GroupStyle(); 
gs.ContainerStyle = myStyle; 
Match.GroupStyle.Add(gs); 

,但我不能設置一個標題名稱作爲例子:爲顯示在

enter image description here

我的目標是創建一個GroupStyle頭示例Male, Female。有人可以告訴我如何?

+0

你還沒有給我們足夠的信息。爲了告訴你如何進行分組 - 你需要告訴我們你的Class持有數據(比如你的鏈接中的class User),我們需要知道你想用來創建組的枚舉(比如'在你的鏈接中枚舉SexType')。否則,我們無法幫助你... – Taterhead

回答

1

我從你的other question here看到,你想按國家分組,很好。

我建議像下面這樣:

public class MatchResults{ 
    public DateTime Time {get;set;} 
    public int Minute {get;set;} 
    public string Home {get;set;} 
    public string Away {get;set;} 
    public string 1-Time {get;set;} 
    public string 2-Time {get;set;} 
    public CountryType Country {get;set} 
} 

那麼你組由枚舉

enum CountryType{ 
    Austria, 
    Azerbaijan, 
    Belgium,... 
} 

然後在窗口的構造,InitializeComponent()後,您將初始化的數據項,並將其添加到您的列表並將它們作爲XAML中ListView的數據源(複製大部分代碼the link)。 然後最後3條構造的線,你已經和更換性別的說法,與國家的說法:

CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvUsers.ItemsSource); 
PropertyGroupDescription groupDescription = new PropertyGroupDescription("Country"); 
view.GroupDescriptions.Add(groupDescription); 
相關問題