无法解析数据类型MyApp.Model.Paper

本文关键字:MyApp Model Paper 数据类型 | 更新日期: 2023-09-27 18:17:37

我正在尝试将类绑定到模板。

<UserControl
    x:Class="MyApp.Controls.PaperSelectControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyApp.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">
    <Grid>
        <ScrollViewer>
            <GridView x:Name="paperGrid" 
                      ItemsSource="{x:Bind Papers}"
                      Width="400" Height="300" >
                <GridView.ItemTemplate >
                    <DataTemplate x:DataType="MyApp.Model.Paper" >
                        <TextBlock Text="{x:Bind Color}"/>
                    </DataTemplate>
                </GridView.ItemTemplate>
            </GridView>
        </ScrollViewer>
    </Grid>
</UserControl>

MyApp.Model.Paper为类命名空间。

namespace MyApp.Model {
    public class Paper {
        public string Name { get; set; }
        public string Color { get; set; }
        public string Thumb { get; set; }
    }
}

但我总是得到

无法解析数据类型

误差

我希望有人能帮我解决这个问题。谢谢你。

无法解析数据类型MyApp.Model.Paper

据我所知,我们不能通过namespace.class格式设置x:DataType标记。为了访问您自己的自定义类型,您可以映射XAML名称空间,这种映射是通过定义xmlns前缀来实现的。例如,xmlns:myTypes定义了一个新的XAML名称空间,通过在所有用法前加上令牌myTypes:来访问该名称空间。

所以请添加这个映射xmlns:model="using:MyApp.Model"到你的标题标记列表。并更新了x:DataType的XAML代码如下:<DataTemplate x:DataType="model:Paper" >,然后构建您的项目,它将工作。

详细信息请参考将自定义类型映射到XAML名称空间和前缀