我对使用Visual Studio 2015进行Windows 10 UWP开发有疑问。
我正在尝试根据this教程为我的GridView使用DataTemplate。我遇到的问题是我的命名空间。
由于显而易见的原因,我不允许分享我的确切代码,但我想知道你们其中一个人之前是否可能遇到此问题。我得到的错误与this人几乎相同(错误代码0x09c4),除了我的DataTemplate在我的代码隐藏文件中,不像他/她那样全局。除了那个错误,我还得到了虚幻的“_name在命名空间_namespace中不存在”。
这是我的一个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"
});
}
}
请帮忙。
答案 0 :(得分:6)
我转载了你的问题。 如何解决:清理,构建或重建解决方案。然后我测试了它,它的工作原理。 我想最常见的原因是构建可以更新文件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>