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

如果您的ItemsControl( GridView) 需要为每个列表项显示多个绑定项 - 您需要将其 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您将有两个TextBlocks - 绑定到您的项目视图模型的属性,如下所示: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 回答