Hallo:
grid1 ist der Name von meiner Collection View, in meiner Code Behind habe ich:
protected override void OnAppearing()
{
base.OnAppearing();
grid1.ScrollTo(19);
}
private void button_Clicked(object sender, EventArgs e)
{
grid1.ScrollTo(19);
}
Die Funktion mit dem Button funktioniert, aber egal, was ich auch versuche, ich bekomme es nicht hin dass die CollectionView beim Start direkt ans Ende (bzw. generell) gescrollt wird.
Wo muss dieser Aufruf hin, Constructor hatte auch nicht funktioniert.
Nochmal zusammengefasst: Ich möchte, dass was der Button macht automatisch bei Start ausgeführt haben.
Wo muss dieser Aufruf hin, Constructor hatte auch nicht funktioniert.
Kann auch nicht, weil natürlich hier noch nichts existiert.
Sowas muss immer erst passieren, wenn die UI auch existiert.
In Xamarin zB muss man einen Command absetzen, sobald die Collection aktualisiert wurde.
xamarin-collectionview-scroll-to-bottom-at-initialization
OnAppearing
in MAUIs Lifecycle sagt aus, dass die Page aufgebaut wird, aber nicht beendet ist.
Das ist also zu früh. Ebenfalls wird dieser Event mehrfach aufgerufen, zB bei re-activated Events etc.
IIRC hat MAUI aber keinen Cross-Plattform Ebent wenn eine View vollständig da ist.
IIRC muss man auf die Elemente gehen.
Wahrscheinlich wirst Du einen Plattform Event brauchen
.NET MAUI-Shell-Lebenszyklus - .NET MAUI
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
So geht es:
grid1.Loaded += Grid1_Loaded;
private void Grid1_Loaded(object sender, EventArgs e)
{
grid1.ScrollTo(19);
}
Danke, du hast mich auf den richtigen Weg geführt 🙂