【问题标题】:Xamarin Forms - Get position of item selected in ListviewXamarin Forms - 获取在 Listview 中选择的项目的位置
【发布时间】:2016-08-04 06:34:16
【问题描述】:

我在点击时尝试在 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 
    };
}

任何帮助将不胜感激。

已解决

必须将 ItemTapped 更改为 ItemSelected

然后在ItemSelected里面我刚刚在这一行添加:

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

【问题讨论】:

    标签: listview xamarin xamarin.forms


    【解决方案1】:

    在 SelectedItem 事件中试试这个:

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

    【讨论】:

    • 抱歉,MyObject 是什么?
    • 如果ItemsSourceObservableCollection&lt;ObservableGroupCollection&lt;string, MyObject&gt;&gt; 类型怎么办?
    • 为我工作.. 使用您的答案并将 ItemTapped 更改为 ItemSelected.. 感谢提问者和回答者。 @testing 我使用像这样的代码 myObjectCollection.IndexOf(e.SelectedItem as MyObject); 这个代码对我有用..
    • 变体:var index = (myListView.ItemsSource as IList).IndexOf (e.SelectedItem);
    【解决方案2】:

    在 listView 中添加项目时,您可以设置该项目的 styleId。 在 ItemTapped 正文中,您将可以访问该项目,从而访问该项目的 styleId。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2018-05-01
      • 2017-01-09
      • 1970-01-01
      • 2015-02-27
      • 1970-01-01
      • 2020-10-18
      相关资源
      最近更新 更多