0

CollectionViewSource を使用して 3 レベルの階層を実現し、それをセマンティック ズームにバインドしようとしている Windows 8.1 アプリケーションがあります。

私のモデルクラスは次のようになります

class Transaction
{
    string id {get; set;}
    string name {get; set;}
    DateTimeOffset date {get; set;
}

このモデルのサンプル値は次のようになります

[1, Food, 31/08/2014]
[2, Movie, 15/08/2014]
[3, Medicine, 20/07/2014]
[4, GameConsole, 02/07/2014]
[5, MobileBill, 18/06/2014]
[4, Tv, 06/06/2014]

セマンティックズームでこのデータを表示したい

  1. 私の ZoomedOutView は、8 月、7 月、6 月などの月を表示する GridView です。
  2. 私の ZoomedInView では、データは日付ごとにグループ化されています

これを達成するには、CollectionViewSource でこれら 3 つのレベルを作成する必要があります。

  1. 日にち
  2. 個人取引

上記の階層のデータ例を以下に示します

August (Appears in ZoomedOutView only)
    August 31
        Transaction 1
        Transaction 2
    August 15
        Transaction 3
        Transaction 4
    August 1
        Transaction 5
        Transaction 6

July (Appears in ZoomedOutView only)
    July 20
        Transaction 7
        Transaction 8
    July 2
        Transaction 9
        Transaction 10

June (Appears in ZoomedOutView only)
    June 10
        Transaction 11
        Transaction 12

私のセマンティックズームアウトビューには

August
July
June

私のセマンティック ズーム ZoomedInView は

August 31
    Transaction 1
    Transaction 2
August 15
    Transaction 3
    Transaction 4
August 1
    Transaction 5
    Transaction 6
July 20
    Transaction 7
    Transaction 8
July 2
    Transaction 9
    Transaction 10
June 10
    Transaction 11
    Transaction 12

次のように、リストを CollectionViewSource にグループ化しようとしています

List<Transaction> response = GetTransactions();
var TransactionCollectionViewSource = new CollectionViewSource();
TransactionCollectionViewSource.Source = response.ToGroups(x => x, x => x.date.Month);
TransactionCollectionViewSource.IsSourceGrouped = true;

groupby month を取得しましたが、これを日ごとにグループ化するにはどうすればよいですか? CollectionViewSource を 2 つ持つ必要がありますか? または、1 つの CollectionViewSource だけでこれを達成することは可能ですか。私は混乱しています。

誰かが私を正しい方向に向けることができれば、とてもうれしいです。前もって感謝します。

4

1 に答える 1