C# Windows 应用商店网格应用 (xaml) 模板

标签 c# windows-8 rss sample-data

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

Hub Page

当点击 Booze 时,用户会转到 Booze 页面,这也是一个 GroupedItemsPage 模板。这 8 项(啤酒、 Wine 、鸡尾酒……)也是标准的,因此我在 SimpleDataSource.cs 文件中创建了第二种方法来显示正确的标题和图像。这里出了问题。单击“Booze”时,我得到一个“System.ArgumentException”。我已经创建了另一个公共(public)密封类 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。

提前致谢!

编辑:第 2 页的项目可以更改。当点击 Booze 时,它​​应该显示在第二页上:beer, wine, cocktail, whisky, ... 当点击 Soda 时:Coca-cola, Icetea, Spriten ...

最佳答案

一般来说,开箱即用的模板作为模式非常好,但很少作为您的实现。

  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 数据绑定(bind),sample 数据模板(StandardStyles.xaml 中的Standard250x250ItemTemplate)正在处理一个非常具体和狭窄的案例。

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

掌握了这一点后,您就会意识到“我应该把代码放在哪里”这个问题没有实际意义。除了获取数据并将其分配给您的 DataContext 之外,几乎没有任何代码。

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

关于C# Windows 应用商店网格应用 (xaml) 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382630/

相关文章:

email - 将第一篇文章的标题放在MailChimp RSS广告系列的主题中

C# WPF 与 MySql 和 EntityFramework

c# - 如何将 Graphics 转换为 Image 或 Bitmap?

windows-8 - 类似于 GridView 的页面,但具有静态组,并且每个组部分将具有不同的布局

Python命令在命令提示符下不起作用

PHP & XML : Can xpath include namespaces in the results, 不就随便搜索了吗?

c# - 将 3 个词典合并为一个词典

c# - 断开管理范围

javascript - Win8底部滚动条

http - 逗号分隔的列表在 Content-Type header 中有效吗?