2009-12-31 7 views
8

Ich habe versucht, die folgenden, die alle auf Funktion ScrollIntoView fehlschlagen und eine Nullreferenceexception geben:WPF-Toolkit: Wie scrollt man Datagrid, um das ausgewählte Element aus dem Code zu zeigen?

// 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); 

Das Problem ist, wenn ich eine Reihe von Code-Behind wählen, die Auswahl ist nicht sichtbar - es ist irgendwo auf der Unterseite . Wenn der Benutzer nicht scrollt, fühlt er, dass die Auswahl verschwunden ist. Ich muss ein DataGrid bis zu dem Punkt scrollen, dass Benutzer die Auswahl sehen können.

Ich habe auch "BringIntoView" versucht, aber kein Glück.

Antwort

5

Virtualized Stapel-Panel nicht ein Element Container, weil Artikel Container nicht für das Element außerhalb der Ansicht vorhanden sind und deshalb wurde dieser Fehler angezeigt. Durch die Deaktivierung der Virtualisierung wird das Problem vorerst behoben, und der Fehler wurde dem Codeplex-Toolkit-Projekt gemeldet.

33

Versuchen:

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

in der ersten Anweisung Ich bin grid.SelectedItem = sItem zuweisen, denkst du grid.SelectedItem und sItem sind in jedem anders? Entschuldigung seine falsche Antwort wird es nie funktionieren. –

+0

SelectedItem-Wrapper für eine Abhängigkeitseigenschaft, sodass sich mein Code von dem unterscheidet, was Sie haben. Probieren Sie es aus, ich hatte das gleiche Problem und das hat für mich funktioniert. Siehe dissembly: [Kategorie ("Appearance"), DesignerSerializationVisibility (DesignerSerializationVisibility.Hidden), Bindable (true)] öffentliches Objekt SelectedItem { erhält { return base.GetValue (SelectedItemProperty); } set { base.SetValue (SelectedItemProperty, Wert); } } –

+0

Akash, hast du das schon mal gemacht? –

Verwandte Themen