Wpf &引用;无法将FixedToolBar类型的值添加到';UIElementCollection'&引用;但是FixedToolBar是UIElement的一个子类
我们在类库中定义了一个名为FixedToolBar的自定义控件,该类库由通过XAML使用它的第二个程序集引用。然而,VS2015显示了错误: 无法将FixedToolBar类型的值添加到“UIElementCollection”类型的集合或词典中 这是课程本身Wpf &引用;无法将FixedToolBar类型的值添加到';UIElementCollection'&引用;但是FixedToolBar是UIElement的一个子类,wpf,xaml,controls,visual-studio-2015,uielement,Wpf,Xaml,Controls,Visual Studio 2015,Uielement,我们在类库中定义了一个名为FixedToolBar的自定义控件,该类库由通过XAML使用它的第二个程序集引用。然而,VS2015显示了错误: 无法将FixedToolBar类型的值添加到“UIElementCollection”类型的集合或词典中 这是课程本身 public class FixedToolBar : Control // <-- Control is a subclass of UIElement { // Bla bla } public-class-Fixed
public class FixedToolBar : Control // <-- Control is a subclass of UIElement
{
// Bla bla
}
public-class-FixedToolBar:Control/据传,这些虚拟错误曲线通常出现在以下场景中:
- 您的xaml在项目A中
- 项目A在其参考文献中包括项目B
- 要添加到集合中的图元类型在项目B中定义
- 元素的类型取决于项目C中的某种类型
- 项目A在其引用中没有明确包含项目C。(因为它不必这样做。)
就构建系统而言,这根本不是问题,因为项目a的依赖项是递归计算的,所以它们包括依赖项的依赖项,所以项目C当然也包括在内
但显然,出于某种深不可测的原因,xaml子系统需要自行解决项目依赖关系,而且它还不够聪明,无法递归地解决它们
解决方案是使项目成为显式引用的项目C,尽管它没有使用它
还要注意,在尝试这样做时,您可能会遇到进一步的复杂情况,例如,如果您编辑A.csproj以将PackageReference添加到项目B,并重新加载项目A,则该引用可能不会显示在“引用”下,在这种情况下,幻影蠕动不会消失。一次彻底彻底的重建往往能解决这个问题。对于投票反对的人。。。想解释一下原因吗?不同的控件都有相同的问题。有关于这个问题的最新消息吗?这似乎会导致与我们的客户端进行BAML解析时出现运行时问题。@MarqueIV我今天遇到了这个问题。我所要做的就是卸载我的项目并重新加载它。显然,当我在项目中添加外部引用时,这种情况就发生了。通过执行上述步骤,VisualStudio完全接受我的项目中的新.dll。干杯我将不得不重新访问代码库,看看这是否解决了它。真烦人。
<DockPanel>
<c:FixedToolBar x:Name="MainToolBar" DockPanel.Dock="Top">
<Button Header="Test 1" />
<Button Header="Test 2" />
</c:FixedToolBar>
<ListBox x:Name="MainListBox" />
</DockPanel>