Ich habe eine TabbedPage
und es enthält ein paar ContentPage
, die aus einer ContentView
bestehen und einige von ihnen hat eine ListView
.ScrollTo nicht mit gruppierten ListView in Xamarin.Forms
Die ListView
enthält eine gruppiert Itemssource durch eine benutzerdefinierte Modell-Klasse dargestellt:
public class DataGroup: List<DataGroupItem>
{
public string HeaderText { get; set; }
public string ShortName { get; set; }
public string SubTitle { get; set; }
public DataGroup(string headerText, string shortName)
{
HeaderText= headerText;
ShortName= shortName;
}
}
Der XAML-Code (es hat eine ItemTemplate auch):
<ListView x:Name="listView"
Grid.Row="0"
GroupDisplayBinding="{Binding HeaderText}"
GroupShortNameBinding="{Binding ShortName}"
HasUnevenRows="True"
IsGroupingEnabled="True"
ItemsSource="{Binding DataGroups}"
SeparatorColor="Black"
SeparatorVisibility="Default">
Wenn ich die tatsächliche ändern Tab, Ich brauche die Listview zu einer bestimmten Gruppe gescrollt werden.
ich diesen Code verwenden:
ObservableCollection<DataGroup> dataGroups= this.listView.ItemsSource as ObservableCollection<DataGroup>;
if (scrolling)
{
var res = dataGroups.Where(dg=>dg.ItemCount > 3).LastOrDefault();
if (res != null)
//Device.StartTimer(TimeSpan.FromMilliseconds(150),() =>
//{
this.listView.ScrollTo(res, ScrollToPosition.Center, false);
//return false;
//});
}
ich in ScrollToPosition
alle Varianten ausprobiert, leider passiert nichts.
Was sollte ich noch versuchen?