Friday, October 15, 2010

Configuración de PivotViewer con error 'Element is already the child of another element'

PivotViewer es un control Silverlight para manejar cantidades considerables de datos de una manera gráfica. Parte de la aplicación de Microsoft Labs Pivot, y de los muchos ejemplos de apps que puedes encontrar en internet, confieso que estoy especialmente enamorado de este de la copa de fútbol. En ese enlace, además de pasar las horas muertas con las estadísticas del mundial, os podréis hacer una idea del potencial de la herramienta, y en la web oficial de Pivot y del control PivotViewer podréis aprender un poquito más: www.getpivot.com, www.silverlight.net/learn/pivotviewer/

El caso es que trabajando diariamente con SharePoint 2010, lo primero que viene a la mente de los de arriba es cómo se puede meter esto dentro de un webpart de Silverlight. No es que sea para nada complicado, y más siguiendo paso a paso este post de Tim Heuer. Genial. Te encuentras en la situación en la que lo tienes todo, compila, 0 errores, 0 warnings, F5, se abre la webapp de prueba, vamosvamosvamos... zas: exception at InitializeComponent() - Element is already the child of another element. Buscas en google y te desesperas, porque es uno de los errores más genéricos de Silverlight.

Si revisas tu código te das cuenta de que más simple no puede ser, que tienes la última referencia a System.Windows.Pivot, y que ese error no te va a decir dónde falla tu código... porque tu código simplemente no falla. Lo que pasa es que la configuración de tu servidor no es la correcta. ¿Has podido olvidar instalar alguna de las 'n' tools-sdk-kits-update-whatever que leíste en los pre-requisitos? Aquí viene el listado completo (funcionando para Windows Server 2008 R2, con VS2010 RTM y Silverlight 4, y actualizado a fecha del post):
Sé paciente, las dos primeras tardan. La última instala la SDK en C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Toolkit\[version], así que revisa que es la DLL que usas al añadirla como referencia en tu proyecto.

1 comment:

  1. Pedazo de pinta que tiene, sobre todo la aplicación del mundial

    ReplyDelete