0

我有一个 Windows 8.1 应用程序,我试图在其中使用 CollectionViewSource 实现 3 级层次结构,然后将其绑定到我的语义缩放

我的模型类如下所示

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 是一个 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;

我有按月分组,现在如何再次将其分组为天?我应该有 2 个 CollectionViewSource 吗?或者是否可以仅使用一个 CollectionViewSource 来实现这一点。我很困惑。

如果有人能指出我正确的方向,我会很高兴。提前致谢。

4

1 回答 1

0

语义缩放:http: //msdn.microsoft.com/en-us/library/windows/apps/hh465319.aspx

尝试这个:

private void Zoom_ViewChangeStarted(object sender, SemanticZoomViewChangedEventArgs e)
{
    if (!e.IsSourceZoomedInView)
    {
        e.DestinationItem.Item = _selectedHubSection;
    }
}

祝你好运!

于 2014-09-04T15:38:18.867 回答