2009-12-31 6 views
8

He intentado lo siguiente, todas las cuales fallan en función ScrollIntoView y dar un NullReferenceException:WPF Toolkit: cómo desplazar la cuadrícula de datos para mostrar el elemento seleccionado del código que está detrás?

// doesn't work 
grid.SelectedItem = sItem; 
grid.ScrollIntoView(sItem); 

// doesn't work 
grid.SelectedItem = sItem; 
grid.Focus(); 
grid.CurrentColumn = grid.Columns[0]; 
grid.UpdateLayout(); 
grid.ScrollIntoView(sItem,grid.Columns[0]); 

// doesn't work 
grid.SelectedItem = sItem; 
grid.UpdateLayout(); 
grid.ScrollIntoView(sItem); 

El problema es que cuando selecciono una fila de código subyacente, la selección no es visible - es en algún lugar de la parte inferior . A menos que el usuario se desplace, siente que la selección se ha desvanecido. Necesito desplazar un DataGrid al punto en que el usuario pueda ver la selección.

También probé "BringIntoView" pero no tuve suerte.

Respuesta

5

virtualizado paquete de paneles no tenía un recipiente artículo, porque de artículos de contenedores no existe para el elemento fuera de la vista y por eso se muestra este error. La desactivación de la virtualización resuelve el problema por el momento, y el error ha sido reportado al proyecto codeklet toolkit.

33

Probar:

grid.SelectedItem = sItem; 
grid.UpdateLayout(); 
grid.ScrollIntoView(grid.SelectedItem); 
+0

en la primera declaración Estoy asignando grid.SelectedItem = sItem, ¿cree que grid.SelectedItem y sItem son diferentes en todos modos? lo siento es una respuesta incorrecta que nunca funcionará. –

+0

Contenedor de SelectedItem en una propiedad de dependencia por lo que mi código es diferente al que tiene. Pruébalo, tuve el mismo problema y esto funcionó para mí. Ver dissembly: [Categoría ("Apariencia"), DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden), enlazables (true)] objeto público SelectedItem { obtener { retorno base.GetValue (SelectedItemProperty); } conjunto { base.SetValue (SelectedItemProperty, value); } } –

+0

Akash, ¿ya le diste una oportunidad? –

Cuestiones relacionadas