从CollectionViewSource的Source初始化的地方?

时间:2013-02-24 08:34:26

标签: data-binding windows-store-apps winrt-xaml

我使用ItemsPage模板在vs 2012中创建了一个项目。

<!-- Collection of items displayed by this page -->
    <CollectionViewSource
        x:Name="itemsViewSource"
        Source="{Binding Items}"/>

这里的{Binding Items}是什么意思?我在用于Windows应用商店项目的ItemsPage中看到它。新ItemsPage有一个基类Common.LayoutAwarePage,其中定义了DefaultViewModel,它指向一个IMap集合。这个集合没有任何Items属性,所以Source如何指向这里的Items?

由于 Kajal

1 个答案:

答案 0 :(得分:1)

如果您查看LoadState后面的代码,您会看到:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    // TODO: Create an appropriate data model for your problem domain to replace the sample data
    var sampleDataGroups = SampleDataSource.GetGroups((String)navigationParameter);
    this.DefaultViewModel["Items"] = sampleDataGroups;
}

此处DefaultViewModel的关键是“项目”,与CollectionViewSource绑定匹配。

“Items”集合的每个元素都是SampleDataGroup,然后在模板中稍后绑定到GridView项。