2016-04-13 28 views
6

タップしたときにListView内のアイテムの位置を取得しようとすると少し問題があります。Xamarinフォーム - ListViewで選択されたアイテムの位置を取得します。

HERESに私のコード:

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 
    }; 
} 

任意の助けいただければ幸いです。

を解決しをItemTapped変更しなければならなかった内すると

をItemSelected私はちょうどこのラインに追加をItemSelected:

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

答えて

11

はこれを試してください:

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

申し訳ありませんが、MyObjectに何でしょうか? – ADuggan

+0

私の最後のメッセージを気にしないで、私はそれを働かせました。 – ADuggan

+0

'ItemsSource'がタイプ' ObservableCollection > 'である場合、それを行う方法? – testing

0

をリストビューにアイテムを追加する際にその項目のstyleIdを設定することができます。 ItemTappedボディの にアクセスすれば、そのアイテムのstyleIdにアクセスできます。

のSelectedItemイベントで
関連する問題