2011-04-28 44 views
14

Estoy obteniendo el siguiente error cuando estoy agregando un control personalizado a través de XAML. ¿cuál puede ser la razón posible? el valor del tipo "..." no se puede añadir a una colección o diccionario de tipo 'uielementcollection'el valor de tipo "..." no se puede agregar a una colección o diccionario de tipo 'colección de elementos'

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

¿Puedes mostrar cómo se define 'IonNumericUpDow'? – ChrisWue

Respuesta

11

El problema fue que no estaba haciendo referencia a un archivo dll (que se hace referencia mediante el control de control numérico) en mi solución. En realidad, el control NumericUpDown no es mi control, está presente en diferentes dll. Y este control se refería a System.Windows.Controls.Input.Toolkit.dll. Ahora lo estoy considerando en mi solución. Y las cosas están funcionando

+1

Vale la pena mencionar que el diseñador utilizará las DLL a las que hace referencia el proyecto para el que representa un diseño. Eso significa que este error a menudo aparece cuando una solución se está compilando y ejecutándose perfectamente, porque una DLL a la que hace referencia un proyecto que está más arriba en la cadena está presente allí, incluso si no está en el proyecto para el que está diseñando. Normalmente, esas referencias son una o más de 'PresentationCore',' WindowsBase', 'System.Xaml', u ocasionalmente' WindowsFormsIntegration'. – tobriand

1

El compilador afirma que su control no es un UIElement (i duda de que está mintiendo) , ¿de qué hereda tu control?

+0

Problema resuelto ahora. en realidad, el control NumericUpDown no es mi control, está presente en diferentes dll. Y este control se refería a System.Windows.Controls.Input.Toolkit.dll. Ahora lo estoy considerando en mi solución. Y las cosas están funcionando. –

+0

pero todavía no estoy seguro de por qué necesito agregar una referencia a esa dll. Como yo no soy el que usa directamente ese dll. de hecho, NumericUpDown (presente en el dll de alguien más) está utilizando System.Windows.Controls.Input.Toolkit.dll. –

+0

Si la referencia no está presente en su aplicación, el control externo simplemente no funcionaría, es ** dependiente ** de él. –

Cuestiones relacionadas