DataTemplate 无法解析 DataType 前缀数据

Posted

技术标签:

【中文标题】DataTemplate 无法解析 DataType 前缀数据【英文标题】:DataTemplate not able to resolve DataType prefix data 【发布时间】:2016-01-13 17:59:43 【问题描述】:

我正在尝试使用 Window 的示例代码在 UWP 中实现 ListView

<ListView.GroupStyle>
            <GroupStyle >
                <GroupStyle.HeaderTemplate>
                    <DataTemplate x:DataType="data:GroupInfoList">
                        <TextBlock Text="x:Bind Key" 
                                   Style="ThemeResource TitleTextBlockStyle"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ListView.GroupStyle>

线-

DataTemplate x:DataType="data:GroupInfoList"

给我错误,如左图所示,创建模型时我想以不同的方式创建它们。它说

命名空间前缀“data”未定义。

它是我需要包含的命名空间吗?

【问题讨论】:

我个人放弃了编译绑定,只使用了普通绑定。这似乎是一个设计时错误,因为我之前已经编译过了。 【参考方案1】:

在您的情况下,data:GroupInfoList 是命名空间映射 data 中的类型 GroupInfoList。 您必须先定义命名空间映射,然后才能使用它。

SimpleListViewSamplePage 元素中,您应该有这样的内容:

<Page
    x:Class="HermantsListV2.Sample.SimpleListViewSample"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    xmlns:data="HermantsListV2.Model">
...

(注意xmlns:data="HermantsListV2.Model 映射。)

只需将上面示例中的命名空间替换为您项目中的正确命名空间即可。

【讨论】:

有意义,但它没有> 错误严重性代码描述项目文件行错误名称“联系人”在命名空间“HermantsListV2.Model”中不存在。 Hemant's List V2 C:\Users\webonise\Documents\Visual Studio 2015\Projects\Hemant's List V2\Hemant's List V2\Sample\SimpleListViewSample.xaml 17 它在哪里出现。 我清理并重建了解决方案。仍然无法正常工作! 那么请检查以下内容: a) 您要绑定的类是公开的吗? b) 命名空间是否正确(我只是使用了一些示例命名空间,因为我不知道您的确切命名空间名称)?【参考方案2】:

这是 Visual Studio 2015 中的一个错误,解决它只需注释该部分代码并运行它。之后取消注释它,它将运行而没有任何错误。

1- 注释这部分代码:

<!--<DataTemplate x:DataType="data:GroupInfoList">
          <TextBlock Text="x:Bind Key" 
                     Style="ThemeResource TitleTextBlockStyle"/>
 </DataTemplate>-->

2- 运行您的应用程序。

3- 取消注释这部分代码:

<DataTemplate x:DataType="data:GroupInfoList">
          <TextBlock Text="x:Bind Key" 
                     Style="ThemeResource TitleTextBlockStyle"/>
 </DataTemplate>

4- 运行应用程序。

【讨论】:

【参考方案3】:

我刚刚遇到了同样的问题,此页面是从 Universal ListView 示例中复制/粘贴的。

粘贴的页面充满了坏字符,例如换行符等。我通过删除数据模板周围的行和换行符来清理页面,一切都很好。

【讨论】:

【参考方案4】:

如果您在 gridview 等中剪切代码,然后保存、构建并粘贴回来,我有时会设法让这个工作正常进行。不知道为什么,但它有时会修复它,也许 VS 在那里隐藏了一些东西。

【讨论】:

以上是关于DataTemplate 无法解析 DataType 前缀数据的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 DataTemplate WPF 将 InputBinding 应用于整个 ListBoxItem

如何向上发送数据?从Datatemplate到上面

如何将 ObservableCollection 绑定到 DataTemplate 中的文本框?

将情节提要的目标设置为 DataTemplate WPF 中的按钮

指定默认的空 DataTemplate 而不是默认的 'ToString()' DataTemplate

WPF -- DataTemplate与ControlTemplate结合使用