简单的静态Gridview

时间:2013-01-30 20:53:43

标签: c# xaml windows-8

我已经开始了解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");

唯一的问题是每个项目(行)都需要标题和图像文本字段以及如何将它们绑定到正确的项目。

1 个答案:

答案 0 :(得分:0)

如果您的ItemsControlGridView)需要为每个列表项显示多个绑定项 - 您需要将其Source绑定到多于字符串的列表,除非您要解析字符串。在你的情况下,你会有类似

的东西
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中,您将拥有两个TextBlock - 与项目视图模型的属性绑定,如下所示:Text="{Binding Title}",{{1 }}

当然,您需要定义Text="{Binding ImageText}",例如

TitleAndImageText