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}
我正在创建一个新的 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}