DataTemplate x:绑定命名空间错误

本文关键字:命名空间 错误 绑定 DataTemplate | 更新日期: 2023-09-27 18:25:28

我有一个关于使用Visual Studio 2015开发Windows 10 UWP的问题。

根据本教程,我正在尝试为我的GridView使用DataTemplate。我遇到的问题是我的命名空间。

出于明显的原因,我不被允许分享我的确切代码,但我想知道你们中是否有人以前遇到过这种情况。我得到的错误与此人几乎相同(错误代码0x09c4),只是我的DataTemplate在我的代码隐藏文件中,而不是像他/她那样全局的。除了这个错误,我还得到了一个虚幻的"名称空间中不存在名称"。

这是我的xaml文件的一部分:

<Grid>
...
    <GridView ItemsSource="{x:Bind ViewModel.AssessExItems}">
        <GridView.ItemTemplate>
            <DataTemplate x:DataType="local:AssessExItem">
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</Grid>

我知道DataTemplate是空的,但即使我在那里输入了一些内容,它仍然不起作用。这是我为这个xaml文件编写的代码隐藏文件:

public sealed partial class AssessmentExample1Screen : Page
{
    public AssessExItemViewModel ViewModel { get; set; }
    public AssessmentExample1Screen()
    {
        this.InitializeComponent();
        this.ViewModel = new AssessExItemViewModel();
    }
}
public class AssessExItem
{
    public int _assessment_id { get; set; }
    public string name { get; set; }
    public string surname { get; set; }
    public string date { get; set; }
    //public EmpAssessItem() { }
}
public class AssessExItemViewModel
{
    private ObservableCollection<AssessExItem> exampleItems = new ObservableCollection<AssessExItem>();
    public ObservableCollection<AssessExItem> AssessExItems { get { return this.exampleItems; } }
    public AssessExItemViewModel()
    {
        //for (int i = 1; i < 3; i++)
        //{
        this.exampleItems.Add(new AssessExItem()
        {
            name = "Cat 777",
            surname = "Botha",
            date = "2015-03-22"
        });
        //}
        this.exampleItems.Add(new AssessExItem()
        {
            name = "XZR 678",
            surname = "Botha",
            date = "2015-03-22"
        });
        this.exampleItems.Add(new AssessExItem()
        {
            name = "TBL 123",
            surname = "Botha",
            date = "2015-03-22"
        });
    }
}

请帮忙。

DataTemplate x:绑定命名空间错误

我重现了您的问题。解决方法:清理并生成或重新生成解决方案。然后我测试了它,它有效。我想发生这种情况的最可能原因是build可以更新文件mainpage.g.cs,该文件决定了在哪里可以找到数据类型。

   <GridView ItemsSource="{x:Bind ViewModel.AssessExItems}">
        <GridView.ItemTemplate>
            <DataTemplate x:DataType="local:AssessExItem">
                <StackPanel Height="100" Width="100" Background="OrangeRed">
                    <TextBlock Text="{x:Bind name}"/>
                    <TextBlock Text="{x:Bind  surname}" x:Phase="1"/>
                    <TextBlock Text="{x:Bind date}" x:Phase="2"/>
                </StackPanel>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>