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"
});
}
}
请帮忙。
我重现了您的问题。解决方法:清理并生成或重新生成解决方案。然后我测试了它,它有效。我想发生这种情况的最可能原因是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>