我们在类库中定义了一个名为FixedToolBar的自定义控件,该库由第二个程序集引用,该程序集通过XAML使用它。但是,VS2015显示错误:
类型为FixedToolBar的值无法添加到“UIElementCollection”类型的集合或字典中
这是班级本身
public class FixedToolBar : Control // <-- Control is a subclass of UIElement
{
// Bla bla
}
...这里是XAML片段......
<DockPanel>
<c:FixedToolBar x:Name="MainToolBar" DockPanel.Dock="Top">
<Button Header="Test 1" />
<Button Header="Test 2" />
</c:FixedToolBar>
<ListBox x:Name="MainListBox" />
</DockPanel>
更奇怪的是它只显示XAML编辑器打开时的错误,但是否则编译并运行得很好!
任何想法为什么?让VS在设计时报告所有这些错误真的很烦人。所有那些红色的波浪形使得XAML da @ n几乎不可读!
答案 0 :(得分:0)
有传言说,这些幻影错误曲线通常出现在以下情况下:
就构建系统而言,这根本不是问题,因为项目A的依赖项是递归计算的,因此它们包括依赖项的依赖项,因此当然会包含项目C。
但是显然,由于某些不可思议的原因,xaml子系统本身需要解决项目依赖关系,并且不够智能地递归解决它们。
解决方案是使项目A明确引用项目C,尽管事实上它没有使用它。
还请注意以下事实:尝试这样做可能会遇到进一步的麻烦,例如,如果您编辑A.csproj以向项目B添加PackageReference并重新加载项目A,则该引用可能不会出现在“参考”,在这种情况下幻像的花体不会消失。适当的完全干净的重建通常可以解决此问题。