2013-03-13 31 views
2

我正在使用我编辑的Windows Store Grid应用程序(xaml)模板创建C#Windows 8 Store应用程序。我的第一页,一个GroupedItemsPage模板,是Drinks页面。在这里我编辑了SimpleDataSource.cs文件中的SimpleDataSource方法来添加我自己的图像和标题(Booze,Soda,...)。这些都是标准项目,所以我在那里做了。C#Windows Store Grid应用程序(xaml)模板

Hub Page

当豪饮点击用户去豪饮页面,这也是一个GroupedItemsPage模板。这8个项目(啤酒,葡萄酒,鸡尾酒......)也是标准的,所以我在SimpleDataSource.cs文件中创建了第二个方法来显示正确的标题和图像。这里出错了。当点击“Booze”时,我得到一个“System.ArgumentException”。我创建了另一个公共密封类SampleDataSourceSecond,就像模板中的一样。我也编辑了该页面的LoadState方法。

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) 
    { 
     // TODO: Assign a collection of bindable groups to this.DefaultViewModel["Groups"] 
     var sampleDataGroupsSecond = SampleDataSourceSecond.GetGroupsSecond((String)navigationParameter); 
     this.DefaultViewModel["GroupsSecond"] = sampleDataGroupsSecond; 
    } 

当我在Visual Studio中查看xaml页面时,它显示正确,但在运行时出现错误。

Drinks Page

当 “啤酒” 点击它进入另一个页面,该GroupDetailPage模板。项目“Jupiler”,“Stella”应来自一个RSS源,我得到标题,描述,图像。这是第二个问题:因为这些不是标准的,我不能在SampleDataSource.cs文件中更改它。我应该在哪里做这件事?

Beer Page

所以: 1.我这样做对吗? 2.如何解决此Systemt.ArgumentException? 3.我应该在哪里放置代码,以便从RSS提要填充GroupDetailPage。

在此先感谢!

编辑:从第二页的项目可以更改。当点击啤酒时,它应显示在第二页上:啤酒,葡萄酒,鸡尾酒,威士忌......当点击苏打水时:可口可乐,冰激凌,Spriten ...

回答

1

一般来说,作为模式很好,但很少作为您的实施。

  1. 我假设你在下面的方法中的第一行代码获得异常?

    public static IEnumerable<SampleDataGroupSecond> GetGroups(string uniqueId) 
    { 
        if (!uniqueId.Equals("AllGroups")) throw new ArgumentException("Only 'AllGroups' is supported as a collection of groups"); 
    
        return _sampleDataSource.AllGroups; 
    } 
    

    你试图塑造一个样品数据源到的东西,这不是真的适合你的数据模型的需求。这个数据源的实现明确表明它没有被设置成你试图使用它的方式。如果我理解正确,你实际上有团体小组?

  2. 再者,底层数据源是一个样品样品包括在数据模型中三个主要领域:ImageTitleSubtitle。通过XAML数据绑定,样本数据模板(Standard250x250ItemTemplateStandardStyles.xaml)正在处理一个非常具体和狭隘的情况。

我会首先列出您的数据模型实际应该是什么样子 - 忘记示例模板中的内容。 Microsoft's App Builder指南的第7天包含有关working with data and files的很好的部分,包括可能对您有所帮助的数据绑定。

当你掌握这个,你会发现你的问题:“我在哪里放置代码是毫无意义的。”除了获取数据并将其分配到DataContext之外,很少有任何代码。

对于RSS,Blog Reader tutorial也应该有所帮助,因为它专门访问和显示来自RSS源的项目。

+0

谢谢!我会看看教程! – user1951083 2013-03-14 08:45:38

相关问题