GOOGLE ADS

Sonntag, 24. April 2022

Markieren Sie eine Zelle in meinem Datagrid, wenn das Programm startet

Ich kann eine Zelle in meinem Datagrid mit dem folgenden Code einfach programmgesteuert markieren:

DataGrid1.ScrollIntoView(DataGrid1.Items[Rowindex]);
DataGrid1.Focus();
DataGrid1.CurrentCell = new DataGridCellInfo(DataGrid1.Items[Rowindex], DataGrid1.Columns[Columnindex]);
DataGrid1.SelectedCells.Clear();
DataGrid1.SelectedCells.Add(DataGrid1.CurrentCell);

Das funktioniert allerdings erst, nachdem ich mein Programm einmal gestartet habe und das Datagrid vollständig geladen ist. Ich versuche jedoch, das Scrollen und Hervorheben beim ersten Start durchzuführen. Mein Methodenaufruf sieht so aus:

public DataBaseWindow()
{
InitializeComponent();
// Here i do some other Stuff.
jump_to_cell();
}
public void jump_to_cell()
{
DataGrid1.ScrollIntoView(DataGrid1.Items[Rowindex]);
DataGrid1.Focus();
DataGrid1.CurrentCell = new DataGridCellInfo(DataGrid1.Items[Rowindex], DataGrid1.Columns[Columnindex]);
DataGrid1.SelectedCells.Clear();
DataGrid1.SelectedCells.Add(DataGrid1.CurrentCell);
}

Wenn ich eine Zelle programmgesteuert auswähle, wird die Auswahl hervorgehoben. Allerdings nicht, wenn ich das Programm zum ersten Mal starte. Dann passiert leider nichts.


Lösung des Problems

Sie können auch die WindowLoaded- oder ContentRendered-Ereignisse verwenden.

<Window...
ContentRendered="Window_ContentRendered">
private void Window_ContentRendered(object sender, RoutedEventArgs e)
{
//do something
}

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...