2013-03-13 69 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

相關問題