UWP:在 DataTemplate 上使用 x:DataType 属性 时出现编译错误

UWP: Compile error when using x:DataType property on DataTemplate

我正在创建一个新的 UWP 空白应用程序项目,目标是 Windows 的周年纪念版本。这是我唯一页面的标记(默认模板命名为 MainPage.xaml):

<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.Resources>
        <DataTemplate x:Key="MyDataTemplate" x:DataType="local:BindyThing">

        </DataTemplate>
    </Grid.Resources>
</Grid>

class BindyThing 在 CS 文件中是这样声明的:

namespace App1
{
     public class BindyThing
     {
     }
}

正如您从上面的标记中看到的,我正在尝试创建一个 DataTemplate 来呈现 BindyThing。但是,当我编译时,出现以下错误:

The XAML Binary Format (XBF) generator reported syntax error '0x09C4' : Property Not Found

当我注释掉DataTemplate 的声明时,这个错误就消失了。有没有人对我为什么得到这个有任何见解?所有帮助表示赞赏。谢谢!

您的 xaml 中似乎不能有空白的 DataTemplate 元素。我能够让您的示例与以下内容一起使用:

<DataTemplate x:Key="MyDataTemplate" x:DataType="local:BindyThing">
    <TextBlock></TextBlock>
</DataTemplate>

(我在 Sergei 的回答中的评论对一些人来说很方便,所以我将其提升为答案以使其更加可见)

我遇到了同样的问题,我的 DataTemplate 不是空白。不过它是在 App.xaml 中定义的。只需将其移动到被引用的位置并删除 x:Key 属性即可使其正常工作。

除了我的数据模板不是空白之外,我遇到了同样的问题。我发现您不能将数据模板留空,如果您尝试在合并到 app.xaml 中的资源字典中使用 x:Type,它也不会起作用。 link 解释了如何在资源字典中 x:bind 代替:Resource dictionaries with {x:Bind}