【问题标题】:Error in XAML: Type reference cannot find public typeXAML 中的错误:类型引用找不到公共类型
【发布时间】:2010-01-28 00:54:17
【问题描述】:

在我的 WPF 应用程序中,我在 XAML 中定义了一个 TreeView 控件。我添加了一个 TreeView.Resources 部分,如下所示:

<TreeView.Resources>
    <HierarchicalDataTemplate DataType="{x:Type local:FileGroup}" ItemsSource="{Binding protXMLFiles}">
        <TextBlock Text="{Binding Path=groupName}"/>
    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate DataType="{x:Type local:protXMLFile}" ItemsSource="{Binding}">
        <TextBlock Text="{Binding Path=filename}"/>
     </HierarchicalDataTemplate>
</TreeView.Resources>

上面,我在顶部用一行定义了“本地”命名空间:

<Window x:Class="FileGrouper.SPWindow" ... xmlns:local="clr-namespace:FileGrouper"...>

当我尝试在 Visual Studio 设计器中加载我的 XAML 时,我在设计器顶部收到一条警告:“文档包含在更新设计器之前必须修复的错误。单击此处打开错误列表";错误列表中的相关错误消息为:“类型引用找不到名为'FileGroup'的公共类型”。编译后错误列表中的所有错误都清除了,应用程序运行没有问题。

尽管如此,除非删除 块,否则我仍然无法使用 XAML 设计器。这是怎么回事,我该如何解决?

【问题讨论】:

  • 我有一个临时修复,我只是将 TreeView 移动到自定义控件中。这使我仍然可以为 Window 使用 XAML 设计器。

标签: wpf xaml designer hierarchicaldatatemplate


【解决方案1】:

是否需要在 xmlns 声明中指定程序集名称? IDE 通常会为我提供这些内容。

【讨论】:

  • 是的。我试着说 {x:Type FileGroup} 并且它不会编译。它仅在我声明“本地”命名空间并编写 {x:Type local:FileGroup} 时编译。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多