C# DataTemplate x:绑定命名空间错误
我有一个关于使用Visual Studio 2015开发Windows 10 UWP的问题 根据教程,我正在尝试为我的GridView使用DataTemplate。我遇到的问题是我的命名空间 我不被允许分享我的确切代码,原因很明显,但我想知道你们当中是否有人曾经遇到过这种情况。我得到的错误与person几乎相同(错误代码0x09c4),只是我的DataTemplate在我的代码隐藏文件中,不像他/她那样是全局的。除了这个错误,我还得到了一个假象“名称空间中不存在名称空间” 下面是我的xaml文件的一部分:C# DataTemplate x:绑定命名空间错误,c#,visual-studio,xaml,uwp,C#,Visual Studio,Xaml,Uwp,我有一个关于使用Visual Studio 2015开发Windows 10 UWP的问题 根据教程,我正在尝试为我的GridView使用DataTemplate。我遇到的问题是我的命名空间 我不被允许分享我的确切代码,原因很明显,但我想知道你们当中是否有人曾经遇到过这种情况。我得到的错误与person几乎相同(错误代码0x09c4),只是我的DataTemplate在我的代码隐藏文件中,不像他/她那样是全局的。除了这个错误,我还得到了一个假象“名称空间中不存在名称空间” 下面是我的xaml文件
<Grid>
...
<GridView ItemsSource="{x:Bind ViewModel.AssessExItems}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:AssessExItem">
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
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是空的,但即使我在那里输入了一些内容,它仍然不起作用。这是我的xaml文件的代码隐藏文件:
<Grid>
...
<GridView ItemsSource="{x:Bind ViewModel.AssessExItems}">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:AssessExItem">
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
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"
});
}
}
公共密封部分课程评估示例1屏幕:第页
{
公共评估项目视图模型视图模型{get;set;}
公共评估示例1屏幕()
{
this.InitializeComponent();
this.ViewModel=新的AssessExItemViewModel();
}
}
公开课评估项目
{
公共int评估id{get;set;}
公共字符串名称{get;set;}
公共字符串姓氏{get;set;}
公共字符串日期{get;set;}
//公共项(){}
}
公共类AssessExItemViewModel
{
私有ObservableCollection exampleItems=新ObservableCollection();
公共ObservableCollection评估项{get{返回this.exampleItems;}
公共评估项目视图模型()
{
//对于(int i=1;i<3;i++)
//{
this.exampleItems.Add(新的AssessExItem()
{
name=“Cat 777”,
姓氏=“博塔”,
日期=“2015-03-22”
});
//}
this.exampleItems.Add(新的AssessExItem()
{
name=“XZR 678”,
姓氏=“博塔”,
日期=“2015-03-22”
});
this.exampleItems.Add(新的AssessExItem()
{
name=“TBL 123”,
姓氏=“博塔”,
日期=“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>
谢谢你的回答!是的,我通过清理和重建使它工作起来。尽管我必须从头开始手动重新键入整个xaml文件,保存它们,关闭它们,重新启动visual studio,最后在再次打开文件之前重建并运行项目。更重要的是,这只是有时起作用。。。不知道为什么,但我现在明白了。不知道要多久。