我有一个带有值的Listview。当我选择一个项目时,我将一个包含所有值的对象传递给另一个页面,我想显示所有值,但是没有出现。 对象" envolvselect"有4个值(NomePesquisa,NomeMae,NomePai和DtNasc),我想展示它们...当我调试时,值传递正确。问题是要向他们展示!
[Page 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;
}
}
}
在标签上绑定了标签,因此.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 :(得分:0)
我在第3页Xaml或代码中看不到BindingContext
。
您可以这样分配:
public EnvolvidoDetalhe(object envolvSelec)
{
InitializeComponent();
this.envolvSelec = envolvSelec;
BindingContext = envolvSelec;
}
现在你的绑定标签知道哪个对象通过该对象的公共属性(NomePesquisa,NomeMae等等)获取数据。