0

Windows 8ストアアプリ用のGridView(XAML)について学び始めました。ItemsPageの例を使用して、コードを確認しました。

私の目的は、それを水平メニューとして使用することです。クリックイベントで、別のxamlページを開くだけです。

SampleDataSource.csファイルを編集し、必要なコンテンツを入力しました。これを行うには、より簡単でクリーンな方法があると思いました。このメニューは動的ではなく、変更されないので、メニュー項目を静的に追加する方法を探しています。

簡単なテキストエントリを追加するには、次のようにします。

<x:String>Item 1</x:String>

しかし、画像やタイトル要素などの特定の部分にバインドする方法がわかりません

そうです、私はこれをもう少し理解していると思います。次のコードはitemsViewSourceにバインドしようとします

<CollectionViewSource
        x:Name="itemsViewSource"
        Source="{Binding Items}"
        d:Source="{Binding AllGroups, Source={d:DesignInstance Type=data:SampleDataSource, IsDesignTimeCreatable=True}}"/>

したがって、次のような新しいリストを作成する必要があります。

List<String> itemsList = new List<string>();
itemsList.Add("Item 1");
itemsList.Add("Item 2");

唯一の問題は、各アイテム(行)にタイトルと画像のテキストフィールドと、それらを正しいアイテムにバインドする方法が必要になることです。

4

1 に答える 1

0

ItemsControlGridView)がリストアイテムごとに複数のバインドされたアイテムを表示する必要がある場合-文字列を解析する場合を除いて、そのソースを文字列以外のもののリストにバインドする必要があります。あなたの場合、あなたは次のようなものを持っているでしょう

List<TitleAndImageText> itemsList = new List<TitleAndImageText>();
itemsList.Add(new TitleAndImageText { Title = "Title 1", ImageText = "Image Text 1");
itemsList.Add(new TitleAndImageText { Title = "Title 2", ImageText = "Image Text 2");

次に、ItemTemplate/DataTemplateに2つTextBlockのsがあります。これらは次のようにアイテムビューモデルのプロパティにバインドされます。 Text="{Binding Title}"Text="{Binding ImageText}"

もちろん、あなたはあなたのTitleAndImageText、例えばを定義する必要があります

public class TitleAndImageText
{
    public string Title { get; set; }
    public string ImageText { get; set; }
}
于 2013-01-30T21:43:47.820 に答える