我有一个
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”值更改为与类名不同.当我描述并修复此类错误时,设计人员可以正常工作.您可能会从您认为不重要的问题中省略一些细节,但这些细节可能会产生重大影响.