2016-05-01 1 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> 

は今、私はthis exampleのように複数のGroupStyleを追加するとします。 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 User'など)を教えて、グループを作成するために使用する列挙型を知る必要があります('あなたのリンクの中でEnum SexType')それ以外の場合、私たちはあなたを助けることができません... – Taterhead

答えて

1

国からグループ化したいと思っているあなたのother question hereをご覧ください。

私は次のようなものを示唆している:あなたが列挙型でグループ

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

、あなたのウィンドウのコンストラクタで、InitializeComponent()後、あなたのデータ項目を初期化し、それらを追加

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} 
} 

をリストを作成し、XAMLからListViewのデータソースにします(ほとんどのコードをthe linkからコピーします)。 その後、コンストラクタの最後の3行は、あなたが持っている国の引数で、セックスの引数を置き換える:

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