我想自動滾動到我的收藏視圖中的選定專案。我正在使用 ObservableCollection 并且能夠在我的視圖中預先選擇一個專案。所以我希望它出現在螢屏上,以便在專案很多的情況下看到。
所以視圖應該自動滾動到所選專案。
代碼
public ObservableCollection WorkerFlockDetails { get; set; }
private WorkerFlock selectedFlock;
public WorkerFlock SelectedFlock
{
get => selectedFlock;
set
{
if (selectedFlock != value)
{
try
{
//Feed = selectedFlock.Feed_intake.ToString() " Kg";
selectedFlock = value;
}
catch
{
}
finally
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedFlock)));
}
}
}
}
這是我初始化和預選的地方
public HomeWorkerViewModel()
{
WorkerFlockDetails = new ObservableCollection<WorkerFlock>();
//populate the collection
Init();
SelectedFlock = WorkerFlockDetails.Skip(3).FirstOrDefault();
}
uj5u.com熱心網友回復:
您可以使用下面的代碼并在頁面變得可見之前在 OnAppearing 中設定 ScrollTo 方法。
Xml:
<CollectionView x:Name="collectionView"
ItemsSource="{Binding WorkerFlockDetails}"
ItemsLayout="HorizontalList"
SelectionMode="Single"
VerticalOptions="Start"
Margin="0,22,0,0"
HeightRequest="32"
SelectedItem="{Binding SelectedFlock, Mode=TwoWay}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Label Text="{Binding Name}" Margin="20,0,20,0"
TextColor="#707070"
FontSize="20"></Label>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
后面的代碼:
public partial class Page19 : ContentPage
{
public ObservableCollection<WorkerFlock> WorkerFlockDetails { get; set; }
public WorkerFlock SelectedFlock { get; set; }
public Page19()
{
InitializeComponent();
WorkerFlockDetails = new ObservableCollection<WorkerFlock>()
{
new WorkerFlock(){ Name="A"},
new WorkerFlock(){ Name="B"},
new WorkerFlock(){ Name="C"},
new WorkerFlock(){ Name="D"},
new WorkerFlock(){ Name="E"},
new WorkerFlock(){ Name="F"},
new WorkerFlock(){ Name="G"}
};
SelectedFlock = WorkerFlockDetails.Skip(3).FirstOrDefault();
this.BindingContext = this;
}
protected override void OnAppearing()
{
base.OnAppearing();
collectionView.ScrollTo(collectionView.SelectedItem, null, ScrollToPosition.Center, false);
}
}
public class WorkerFlock
{
public string Name { get; set; }
}

uj5u.com熱心網友回復:
您可以使用 .ScrollTo(); CollectionView 上的方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338110.html
標籤:C# 沙马林 xamarin.forms
下一篇:Python讀取字符
