2011-04-28 96 views
14

我gettig以下错误时,我通过XAML添加自定义控件。可能的原因是什么? 类型的值“...”不能被添加到一个集合或类型‘uielementcollection’类型“...”的值不能添加到'uielementcollection'类型的集合或字典

<Grid x:Name="QuantityDetail" DataContext="{StaticResource ViewModel}"> 
    <GroupBox> 
     ..... 
     <Label Style="{StaticResource ResourceKey=LabelValue}">Min</Label> 
     <!-- The following control --> 
     <NumericUpDow><NumericUpDown> 
     ..... 
    </GroupBox> 
</Grid> 
+0

你能告诉你如何定义IonNumericUpDow吗? – ChrisWue 2011-04-28 08:08:53

回答

11

问题是我没有在我的解决方案中引用一个dll(由numericupdown控件引用)。 其实NumericUpDown控件不是我的控件,它存在于不同的dll中。而这个控件正在引用System.Windows.Controls.Input.Toolkit.dll。现在我正在参考我的解决方案。而事情正在工作

+1

值得一提的是,设计人员将使用它代表设计的项目引用的DLL。这意味着,当解决方案编译并运行完美时,通常会出现此错误 - 因为即使不在您正在设计的项目中,由链中更高级项目引用的DLL也会出现。不过,通常这些引用是'PresentationCore','WindowsBase','System.Xaml'或偶尔的'WindowsFormsIntegration'中的一个或多个。 – tobriand 2017-03-01 18:16:38

1

编译器声称你的控制不是一个UIElement的字典(我怀疑这是在撒谎) ,你的控制是从哪里继承的?

+0

问题现在解决了。实际上NumericUpDown控件不是我的控件,它存在于不同的dll中。而这个控件正在引用System.Windows.Controls.Input.Toolkit.dll。现在我正在参考我的解决方案。事情正在发挥作用。 – 2011-04-28 10:46:08

+0

但仍不确定为什么我需要添加对该dll的引用。因为我不是那个直接使用该dll的人。 Infact NumericUpDown(存在于别人的其他DLL)正在使用System.Windows.Controls.Input.Toolkit.dll。 – 2011-04-28 10:51:39

+0

如果你的应用程序中没有引用,那么外部控件根本无法工作,它依赖于**。 – 2011-04-28 11:05:55

相关问题