2017-07-05 77 views
0

我知道如何將數據從Entry,Label發送到下一個表單,但我如何使用ListView完成此操作。 我想要一個簡單的直接方法。將數據從ListView項目傳遞到下一個表單

我的XAML代碼:

<ListView x:Name="MyClientslistView" HasUnevenRows="true" ItemTapped="OnSalesReport"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <ViewCell> 

          <StackLayout Orientation="Vertical" VerticalOptions="Center" Margin="5" > 
           <Label Text="{Binding client_name}" TextColor="#A7A392" /> 
           <Label Text="{Binding client_address}" TextColor="Black" /> 
           <Label Text="{Binding client_phone}" TextColor="Black" /> 
           <Label Text="{Binding client_email}" TextColor="Black" /> 
           <Label Text="{Binding AssignStatus}" TextColor="Black" /> 
           <Label Text="{Binding assignmentComments}" TextColor="Black" /> 
          </StackLayout> 
        </ViewCell> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

我已經從JSON加載數據到ListView,現在目前我不想動了,他項下表單每個ID,我怎麼能解決呢?

+0

是否要傳遞整個列表?你只想傳遞某人點擊的物品的ID或? –

+0

你不能只發送ListView的ItemSource到下一個表單? –

+0

也許你可以加載你的數據到一個'list'中,然後用它作爲'ListView ItemsSource'。另一種方法,如果你不想改變你現有的代碼是在列表視圖'ItemSources =「{Binding NameOfYourList,Mode = TwoWay}''上使用雙向綁定,並將列表傳遞給下一個表單 – Jimbot

回答

1

您可以從ItemTapped聽衆處獲得該物品。在你的情況下使用以下解決方案

void OnSalesReport(object sender, Xamarin.Forms.ItemTappedEventArgs e) 
    { 
     YourItemModel item = (YourItemModel)((ListView)sender).SelectedItem; 
     ((ListView)sender).SelectedItem = null; 
     Navigation.PushAsync(new NextPage(item)); 
    } 
+0

My YourItemModel Class has屬性如ID,姓名等是你的答案,說我可以在這裏給他們打電話,請糾正該問題 –

+0

這就像魅力感謝 –

+0

很高興聽到... –

2

對不起,我英文不好

您可以通過e.Item在事件處理程序private void OnSalesReport(object sender, ItemTappedEventArgs e)有你的整個項目。 你必須做var item = ((YourTypeClassItem)e.Item);然後你得到的東西,如item.client_name和可能item.client_id

我希望它能幫助你。

相關問題