2017-05-26 70 views
2

我想DisplayAlert ListView中選定項目的索引號,我的代碼目前只是顯示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

'lstView.Items.IndexOf(e.SelectedItem)'? –

+0

我試過這個,但它不起作用。 –

+0

@PaulJosephDarSantos var index =(lstView.ItemsSource as List ).IndexOf(e.SelectedItem as ItemModel);'? – Hexie

回答

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; 

    } 
相關問題