2016-04-13 60 views
6

Im在嘗試獲取ListView中項目的位置時遇到了一些麻煩。Xamarin Forms - 獲取在ListView中選擇的項目的位置

繼承人我的代碼:

public MainPage() 
{ 
    InitializeComponent(); 

    Results(); 
} 

async void Results() 
{ 
    var service = new RestService(); 
    response = await service.GetEventItemsAsync(); 

    Debug.WriteLine("Found: " + response.Count + " events"); 

    listView.ItemsSource = response; 

    listView.ItemTapped += async (sender, e) => 
    { 
     // Get position of item tapped 
    }; 
} 

任何幫助將不勝感激。

解決

不得不改變ItemTappedItemSelected

然後裏面的ItemSelected我剛加入這一行:

var i = (listView.ItemsSource as List<EventItems>).IndexOf(e.SelectedItem as EventItems); 

回答

11

在事件的SelectedItem試試這個:

var index = (myListView.ItemsSource as List<MyObject>).IndexOf (e.SelectedItem as MyObject); 
+0

對不起,這一點,但什麼是MyObject來? – ADuggan

+0

不介意我最後的消息,我得到它的工作。 – ADuggan

+0

如何做到這一點,如果'ItemsSource'的類型爲'ObservableCollection >'? – testing

0

雖然增加ListView中的項目,你可以設置該項目的styleId。 在ItemTapped正文中,您將有權訪問該項目,從而訪問該項目的styleId。