0

Itemsタイプのプロパティを持つ Ingredients クラスがありますList<Ingredient>
私のページの 1 つで、最初の文字でグループ化されたすべての成分を表示するために GridView を使用しています。

<Page.Resources>
    <CollectionViewSource x:Name="IngredientsViewSource" IsSourceGrouped="True" ItemsPath="Items"/>
</Page.Resources>

ページが読み込まれると、CollectionViewSource の Source プロパティは次のように設定されます。

this.IngredientsViewSource.Source = CurrentData.Ingredients.GroupedItems;

GroupedItemsは Ingredients クラスのプロパティで、プロパティItemsと順序を取り、すぐに使用できるようにすべてをグループ化します。

public object GroupedItems
{
    get
    {
        if (this.Items != null)
        {
            return from IngredientIteration in this.Items
                       //orderby IngredientIteration.Name ascending
                       group IngredientIteration 
                           by IngredientIteration.FirstLetter
                           into IngredientGroup
                           //orderby IngredientGroup.Key ascending
                           select new { 
                                        FirstLetter = IngredientGroup.Key, 
                                        Items = IngredientGroup 
                                      };
        }
        else 
        {
            return null;
        }
    }
    private set { }
}

これは非常にうまく機能しています。最初の文字の順序がすべてめちゃくちゃになっているので、結果を並べ替えたいと思います。ただし、2 つの句の前にあるコメント マークを削除すると、orderbyまったくおかしくなります。現在のように orderby 句を残すと、グループは正しく順序付けられますが、グループごとの最初の項目のみが表示されます。
ただし、昇順を降順に変更すると、すべてが期待どおりに機能します。グループは降順で並べ替えられ、すべてのアイテムが表示され、各グループ内でアイテムが降順で並べ替えられます。

これは私には意味がありません。なぜ下降は機能するのに上昇は機能しないのですか? ここで何か不足していますか?

4

1 に答える 1