2017-12-26 11 views
0

Ich muss TextCells eins nach dem anderen per Knopfdruck fokussieren. Ich versuchte listView.ScrollTo.Wie Sie ListView's TextCell per Button fokussieren?

private void Button_Clicked_1(object sender, EventArgs e) 
{ 
    listViewJson.ItemTapped += ListViewJson_ItemTapped; 
} 

private void ListViewJson_ItemTapped(object sender, ItemTappedEventArgs e) 
{ 
    var focusing = e.Item; 
    listViewJson.ScrollTo(focusing, ScrollToPosition.MakeVisible, true); 
} 

Antwort

0

Versuchen Sie zunächst, einen Index zu definieren, um zu ermitteln, welche Zelle ausgewählt werden soll. Ändern Sie dann den Index über den Button klicken wie:

int selectedIndex = 0; 
private void MyBtn_Clicked(object sender, EventArgs e) 
{ 
    if (selectedIndex == dataList.Count) selectedIndex = 0; 
    myListView.SelectedItem = dataList[selectedIndex++]; 
} 

wenn die TextCell der itemSelected Veranstaltung Listview ausgewählt wird ausgelöst wird, können Sie Ihren Code in sie mag:

private void MyListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) 
{ 
    //try to do something 
} 

Hier ist mein Code hinter für Sie beziehen sich auf:

ObservableCollection<string> dataList = new ObservableCollection<string>(); 

int selectedIndex = 0; 

public MainPage() 
{ 
    InitializeComponent(); 

    for (int i=0; i<10; i++) 
    { 
     dataList.Add("item" + i); 
    } 

    myListView.ItemsSource = dataList; 

    myListView.ItemSelected += MyListView_ItemSelected; 

    MyBtn.Clicked += MyBtn_Clicked; 
} 

private void MyListView_ItemSelected(object sender, SelectedItemChangedEventArgs e) 
{ 
    //try to do something 
} 

private void MyBtn_Clicked(object sender, EventArgs e) 
{ 
    if (selectedIndex == dataList.Count) selectedIndex = 0; 
    myListView.SelectedItem = dataList[selectedIndex++]; 
}