2010-10-04 20 views
8

Tengo una cuadrícula de datos en un acordeón al que agrego elementos mediante programación. Los elementos no tienen problemas para agregarse, pero el elemento de acordeón no se actualiza a un tamaño que puede ver todos los contenidos de la cuadrícula de datos. Si arrastro los lados de las cuadrículas de datos para cambiar su tamaño, el elemento del acordeón cambia de tamaño correctamente. Parece que no puedo hacer esto automáticamente a través del código. Intenté InvalidateArrage e InvalidateMeasure en la grilla o el elemento del acordeón y también intenté cambiar el ancho o alto de los controles, pero parece que nada funciona a través del código. Incluso probé los métodos Invalidar en el LayoutRoot. ¿Hay algo que pueda hacer con respecto al código para que el elemento del acordeón se actualice al tamaño correcto?El elemento de acordeón de Silverlight redibujado no funciona

+0

he estado tratando con el mismo problema con un 'ItemsControl' durante mucho tiempo. Juro que lo he intentado todo. Espero que esto sea respondido. – Gabe

+1

¿Hay alguna posibilidad de que publique algo de xaml que vuelva a crear el problema? –

+0

+1 a Jason ... Realmente necesita proporcionar su XAML para problemas como este. De lo contrario, tenemos que adivinar dónde puede estar yendo mal :) –

Respuesta

4

Tengo el mismo problema, pero con ListBox en AccordionItem. Resuelvo esto - ponga su cuadrícula de datos en la red de control

<toolkit:Accordion.ContentTemplate> 
       <DataTemplate> 
        <Grid> 

         <DataGrid.../> 

        </Grid> 
       </DataTemplate> 
      </toolkit:Accordion.ContentTemplate> 

y hay que llamar al método UpdateLayout() cuando ItemsSource se cambia (elemento añadido)

private void ItemsSource_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
      { 
       yourAccordion.UpdateLayout(); 
      } 
Cuestiones relacionadas