2016-07-23 8 views
-1

私は国に関連付けられている試合のリストを持っています。今、私は例えばので、各試合のためにこの国を割り当てる反復で:名前はとにかく、国民の名であるItemCountの重複を防ぐにはどうすればよいですか?

<Expander IsExpanded="True" Background="#4F4F4F"> 
    <Expander.Header> 
    <StackPanel Orientation="Horizontal" Height="22"> 
     <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="White" FontSize="22" VerticalAlignment="Bottom" /> 
     <TextBlock Text="{Binding ItemCount}" FontSize="22" Foreground="Orange" FontWeight="Bold" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" /> 
     <TextBlock Text=" match" FontSize="22" Foreground="White" FontStyle="Italic" VerticalAlignment="Bottom" /> 
    </StackPanel> 
    </Expander.Header> 
    <ItemsPresenter /> 
</Expander> 

、:

Team A = Italy 
Team B = Italy 

私がこのようにGridViewに一致するバインド問題はItemCountがイタリアを2回つかむことだ。私はxamlでこの状況を防ぎ、重複したアイテムを表示しないようにする必要があります、これは可能ですか?

+2

十分な詳細を提供していません。 – Liero

+1

'ItemCount'を設定したコードを投稿できますか? – mariosangiorgio

+0

XAMLはここではほとんど無関係に見えます...これはあなたがすでに計算したものだけを示しています。リストを満たすC#コードはどうですか? –

答えて

0

あなたの質問はあいまいですが、あなたの都市名に基づいて結果をグループ化しなかったと思います。

1

Teamというラベルの付いた種類のListがあるとします。

これを試してみてください。これはパフォーマンスのために最適化されていないよう

List<Team> teams = new List<Team> 
{ 
    new Team {Name = "Italy"}, 
    new Team {Name = "France"}, 
    new Team {Name = "Italy"} 
}; 

var distinctList = teams.Select(team => team.Name) 
         .Distinct() 
         .Select(team => new Team {Name = team}) 
         .OrderBy(team => team.Name) 
         .ToList(); 

は非常に注意してください、これは単純に、あなたが望む結果が得られます。データセットが非常に大きい場合はこれを使用しないでください。そうしないと、読み込み時間を補う必要があります。 StringComparisonに対応するために、IEqualityComparerのクラスタイプを追加することもできます。比較者は、その後、引数としてDistinct()に渡されます。

ItemCountについては、一度distinctListを取得すると、その変数をViewModelに設定するだけです。

this.ItemCount = distinctList.Count(); 
関連する問題