将组数据绑定到Gridview windows 8应用商店应用程序

将组数据绑定到Gridview windows 8应用商店应用程序,gridview,windows-8,windows-store-apps,Gridview,Windows 8,Windows Store Apps,这是我第一个使用XAML的win 8商店应用程序,所以有点不确定。我想将数据绑定到gridview。要做到这一点,我有一个 class Category { public int Id { get; set; } public string CategoryName { get; set; } public string IconPath { get; set; } } 在代码背后,我有 protected override void LoadState(Object

这是我第一个使用XAML的win 8商店应用程序,所以有点不确定。我想将数据绑定到gridview。要做到这一点,我有一个

class Category
{
    public int Id { get; set; }
    public string CategoryName { get; set; }
    public string IconPath { get; set; }
}
在代码背后,我有

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
    {
        // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]
        Model.Utility util = new Utility();
        var categories = util.GetCategoryList(); // this returns List<Category>
        this.DefaultViewModel["Items"] = categories;
    }
protected override void LoadState(对象导航参数,字典页面状态)
{
//TODO:为此分配可绑定的项集合。DefaultViewModel[“项”]
Model.Utility util=new Utility();
var categories=util.GetCategoryList();//此返回列表
此.DefaultViewModel[“项”]=类别;
}
我的xaml是:

  <!-- Horizontal scrolling grid used in most view states -->
    <GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemsGridView"
        AutomationProperties.Name="Items"
        TabIndex="1"
        Grid.RowSpan="2"
        Padding="116,136,116,46"
        ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
        ItemTemplate="{StaticResource Standard250x250ItemTemplate}"
        SelectionMode="None"
        IsSwipeEnabled="false"/>


但是当我运行应用程序时,我看不到任何数据。我哪里做错了

默认情况下,Standard250x250ItemTemplate绑定到属性Title、SubTitle和Image。除非更新了模板,否则您的类别类没有这些属性,因为ItemTemplate没有任何要显示的内容。我怀疑在调试应用程序时会出现数据绑定错误,并表示找不到标题、字幕和图像属性


要更正此问题,请右键单击GridView,选择编辑附加模板,编辑生成的项(ItemTemplate),编辑副本并更新模板,以将正确的元素绑定到类的属性名称。

基于代码中的一些名称,看起来您正在尝试为网格应用程序模板重用一些模板代码

我还将假设您在同一个XAML文件中定义了以下资源:

    <CollectionViewSource x:Name="itemsViewSource" Source="{Binding Items}" />
<GridView
    x:Name="itemGridView"
    AutomationProperties.AutomationId="ItemsGridView"
    AutomationProperties.Name="Items"
    TabIndex="1"
    Grid.RowSpan="2"
    Padding="116,136,116,46"
    ItemsSource="{Binding Source={StaticResource itemsViewSource}}"

    SelectionMode="None"
    IsSwipeEnabled="false">

    <GridView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding CategoryName}" />
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>