如何获得所选项目的索引号?

时间:2017-05-26 07:13:41

标签: c# xamarin.forms

我想在DisplayView中显示所选项目的索引号,我的代码目前只显示item_code但我想在ListView中显示索引号,非常感谢。

我的.cs

lstView.ItemsSource = _sqLiteConnection.Table<ItemModel>();     
lstView.ItemSelected += async (sender, e) =>        
{               
   await DisplayAlert("Selected ",((ItemModel)e.SelectedItem).item_code  
   + " was selected.", "OK");                     
};

我的xaml.cs

<ListView x:Name="lstView">
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell >
        <StackLayout Orientation="Vertical" >
          <Label Text="{Binding item_desc}" />
          <Label Text="{Binding selling_price}" />

        </StackLayout>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

查看模型

public class ItemModel
{

    public string cost_method { get; set; }
    public string item_code { get; set; }
    public string item_desc { get; set; }
    public string item_group_desc { get; set; }
    public long item_id { get; set; }
    public string stock_item { get; set; }
    public string trnx_unit { get; set; }
    public decimal selling_price { get; set; }
}

2 个答案:

答案 0 :(得分:0)

这个问题已在几个主题中得到解答,其中一个可以在这里找到:

Xamarin Forms - Get position of item selected in Listview

简短的回答片段(归功于上述帖子):

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

答案 1 :(得分:0)

 public Class Students
 {
      public int sid { get; set; }
      public string Name { get; set; }  
 } 

 listview.ItemSelected += Lst_ItemSelected;

 private void Lst_ItemSelected(object sender, SelectedItemChangedEventArgs e)
  {
       var index = (listview.ItemsSource as List<Students>).IndexOf(e.SelectedItem as Students); // to get a index value or postion value 

       ((ListView)sender).SelectedItem = null;

  }