DataTemplate x:绑定名称空间错误

时间:2015-12-02 09:05:05

标签: c# visual-studio xaml uwp

我对使用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"
        });
    }
}

请帮忙。

1 个答案:

答案 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>