wpf – 当转换器在UserControl.Resources中时,XAML Designer“找不到类型”

我有一个
WPF UserControl与绑定转换器引用如下:

<UserControl x:Class="MyControl" x:Name="MyControl"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local="clr-namespace:TheMainNamespaceOfThisAssembly">

    <UserControl.Resources>
      <local:ConfidenceColorConverter x:Key="ConfidenceColorConverter"/>
    </UserControl.Resources>

然后我使用绑定转换器.我在设计窗口中看到了用户控件.然后我编译,然后将此用户控件放在我的主窗口中.我运行它,它的工作原理.但是,我仍然想在主窗口上使用设计器,它打破了:

Could not create an instance of type ‘MyControl’.

所以我学到了how to debug the designer;当我这样做时,我得到一个XamlParseException:

Cannot find type ‘TheMainNamespaceOfThisAssembly.ConfidenceColorConverter’. The assembly used when compiling might be different than that used when loading and the type is missing. Error in markup file…

如果删除对转换器的引用,我的用户控件将在主窗口的设计器中很好地显示.任何想法如何修复我对转换器的引用,以便它们不会破坏设计师?

无法理解文章Troubleshooting WPF Designer Load Failures是否适用.

最佳答案 您能否尝试在一个干净的新项目上重现问题,而不是编辑现有项目?你不能拥有

<UserControl x:Class="MyControl" x:Name="MyControl"...

因为您需要将命名空间添加到“x:class”并将“x:Name”值更改为与类名不同.当我描述并修复此类错误时,设计人员可以正常工作.您可能会从您认为不重要的问题中省略一些细节,但这些细节可能会产生重大影响.

点赞