2

編集したWindowsStoreグリッドアプリ(xaml)テンプレートを使用してC#Windows8ストアアプリケーションを作成しています。私の最初のページであるGroupedItemsPageテンプレートは、Drinksページです。ここでは、SimpleDataSource.csファイルのSimpleDataSourceメソッドを編集して、独自の画像とタイトル(Booze、Sodaなど)を追加しました。これらは標準的なアイテムなので、そこでやりました。

ハブページ

Boozeをクリックすると、ユーザーはBoozeページに移動します。これはGroupedItemsPageテンプレートでもあります。これらの8つのアイテム(ビール、ワイン、カクテルなど)も標準であるため、SimpleDataSource.csファイルに2番目のメソッドを作成して、正しいタイトルと画像を表示しました。ここでそれはうまくいかない。「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ページを見ると、正しく表示されますが、実行時にエラーが発生します。

ドリンクページ

「ビール」をクリックすると、別のページであるGroupDetailPageテンプレートに移動します。「Jupiler」、「Stella」のアイテムは、タイトル、説明、画像を取得するRSSフィードから取得する必要があります。これは2番目の問題です。これらは標準ではないため、SampleDataSource.csファイルでこれを変更することはできません。どこでこれをすればいいですか?

ビールページ

だから:1。私はこれを正しくやっていますか?2.このSystemt.ArgumentExceptionを解決するにはどうすればよいですか?3. RSSフィードからGroupDetailPageに入力できるように、コードをどこに配置すればよいですか。

前もって感謝します!

編集:2ページ目のアイテムは変更される可能性があります。Boozeをクリックすると、2ページ目に表示されます:ビール、ワイン、カクテル、ウイスキー、...ソーダをクリックすると:コカコーラ、アイスティー、スプリテン..。

4

1 に答える 1

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. 繰り返しになりますが、基になるデータソースはサンプルであり、そのサンプルImageにはデータモデルの3つの主要なフィールドである、、が含まれTitleていますSubtitle。XAMLデータバインディングを介して、サンプルデータテンプレート(Standard250x250ItemTemplateStandardStyles.xaml)は非常に特殊で狭いケースを処理します。

まず、データモデルが実際にどのように見えるかをレイアウトします。サンプルテンプレートの内容は忘れてください。MicrosoftのAppBuilderガイダンスの7日目には、データとファイルの操作に関する優れたセクションが含まれています。これには、役立つ可能性のあるデータバインディングも含まれます。

これをマスターすると、「コードをどこに配置すればよいのか」という質問に気付くでしょう。データを取得してに割り当てるために必要なコード以外のコードはめったにありませんDataContext

特にRSSの場合、ブログリーダーのチュートリアルは、RSSフィードからのアイテムに特にアクセスして表示するため、同様に役立つはずです。

于 2013-03-13T23:31:14.907 に答える