2016-06-07 41 views
-1

我有一個帶有值的列表視圖。當我選擇一個項目,我傳遞一個對象的所有值到另一個頁面,我想顯示所有的值,但沒有出現。 對象「envolvselect」有4個值(NomePesquisa,NomeMae,NomePai和DtNasc),我想向他們展示......當我調試時,值傳遞正確。問題是要展示給他們!如何從一個對象獲取數據?

[1]

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using AppMobile.Services; 
using AppMobile.Models; 
using Xamarin.Forms; 
using System.Diagnostics; 

namespace AppMobile.Views 
{ 
    public partial class BuscaEnvolvidos : ContentPage 
    { 
     public BuscaEnvolvidos() 
     { 
      InitializeComponent();   
     } 

     public void ConsultarClick (object sender, EventArgs e) 
     { 
      var ListaDados = new ListView(); 

      string nomepesquisa = entryNmPesq.Text; 
      string nomemae = entryNmMae.Text; 
      string nomepai = entryNmPai.Text; 
      string dtnasc = entrydtNasc.Text; 

      ApiCall apiCall = new ApiCall(); 

      apiCall.GetResponse<List<Envolvidos>>("nomes", "Envolvidos", nomepesquisa, nomemae, nomepai, dtnasc).ContinueWith(t => 
      { 
       //Caso tenha erro na requisição 
       if (t.IsFaulted || t.IsCanceled) 
       { 
        Debug.WriteLine(t.Exception.Message); 
        Device.BeginInvokeOnMainThread(() => 
        { 
         DisplayAlert("Erro", "Ocorreu um erro na Requisição. Tente novamente", "Ok"); 
        }); 
       } 

       //Caso a requisição ocorra sem problemas, cairemos aqui 
       else 
       { 
        //Se Chegarmos aqui, está tudo ok, agora itemos tratar nossa Lista 
        //Aqui Usaremos a Thread Principal, ou seja, a que possui as references da UI 
        Device.BeginInvokeOnMainThread(() => 
        { 
         ListaDados.ItemsSource = t.Result; 
         Navigation.PushAsync(new ResultadosBuscados(ListaDados.ItemsSource)); 
        }); 

       } 
      }); 


     } 
    } 
} 

[第2頁]

namespace AppMobile.Views 
{ 
    public partial class ResultadosBuscados : ContentPage 
    { 
     public ResultadosBuscados(IEnumerable dadosPesquisados) 
     { 
      InitializeComponent(); 
      ListaBuscados.ItemsSource = dadosPesquisados; 

     } 

     public void OnItemSelected(object sender, SelectedItemChangedEventArgs e) 
     { 
      var envolvSelec = e.SelectedItem; 
       if (envolvSelec == null) 
        return; 

      this.Navigation.PushAsync(new EnvolvidoDetalhe(envolvSelec)); 
      this.ListaBuscados.SelectedItem = null; 
     } 

    } 
} 

[第3頁]

using System.Text; 
using System.Threading.Tasks; 
using System.Reflection; 
using Xamarin.Forms; 

namespace AppMobile.Views 
{ 
    public partial class EnvolvidoDetalhe : ContentPage 
    { 
     private object envolvSelec; 

     public EnvolvidoDetalhe(object envolvSelec) 
     { 
      InitializeComponent(); 
      this.envolvSelec = envolvSelec; 
     } 

    } 
} 

在頁面3 I綁定標籤,所以在的.xaml是:

 <ListView x:Name="ListaInfos" SeparatorColor="#F4B400" SeparatorVisibility="Default" HasUnevenRows="True"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
     <ViewCell.View> 
      <StackLayout Spacing="1"> 
      <Label x:Name="lblNome" Text="{Binding NomePesquisa}" TextColor="#555" FontSize="18" FontAttributes="Bold"></Label> 
      <Label x:Name="lblNomeMae" Text="{Binding NomeMae}" TextColor="#555" FontSize="12"></Label> 
      <Label x:Name="lblNomePai" Text="{Binding NomePai}" TextColor="#555" FontSize="12"></Label> 
      <Label x:Name="lblDataNasc" Text="{Binding DtNasc}" TextColor="#555" FontSize="12" ></Label> 
      </StackLayout> 
     </ViewCell.View> 
     </ViewCell> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

回答

0

我在您的第3頁Xaml或代碼中看不到BindingContext

您可以指定它是這樣:

public EnvolvidoDetalhe(object envolvSelec) 
{ 
    InitializeComponent(); 
    this.envolvSelec = envolvSelec; 
    BindingContext = envolvSelec; 
} 

現在知道你綁定的標籤,其對象從通過該對象的公共屬性(NomePesquisa,NomeMae,等...),獲取他們的數據。

+0

我的英雄!!!! rsrsrs 謝謝我的朋友... 讓我再問你一件事......當我做{綁定},我怎麼才能顯示一個字符串?就像這樣: 「名稱:」(綁定結果) 現在,我只是顯示(結合的結果) –

+0

我發現 「{結合NomePesquisa,的StringFormat = '諾姆:{0}'}」 此外,謝謝非常 !!! –