我有一个从REST API填充的ListView。我需要向另一个页面发送一个参数,以便根据查询使用REST API填充另一个ListView。
列表视图结构如下所示:
<ListView x:Name="Clientes_List"
RowHeight="60"
HeightRequest="600"
ItemTapped="TapCliente">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical" Padding="8,0,8,0">
<Label Text="{Binding Marca}" TextColor="#45678e" FontSize="14" LineBreakMode="TailTruncation"></Label>
<Label Text="{Binding ID}" TextColor="#FF0000" FontSize="12" x:Name="LtIdCliente"></Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
需要传递的参数是在LtIdCliente标签的文本值中声明的参数。
这就是我的行动:
public void TapCliente(object sender, ItemTappedEventArgs e)
{
Label lbClienteId = (Label)Clientes_List.FindByName("LtIdCliente");
string clienteId = lbClienteId.Text;
Navigation.PushModalAsync(new Facturas(clienteId));
}
我得到了一个没有设置为示例的对象错误,所以它没有从标签中获取值。
System.NullReferenceException: 'Object reference not set to an instance of an object.'
接收器页面"Facturas.xaml"将以这种方式读取参数:
public partial class Facturas : ContentPage
{
public Facturas(string idCliente)
{
InitializeComponent();
if (Connectivity.Current.NetworkAccess == NetworkAccess.None)
{
lblInternet.Text = "Tu conexión a internet es deficiente o nula, no podemos realizar consultas.";
}
else
{
lblInternet.Text = "Conexión estable con el servidor de Haif.";
CargarData(idCliente);
}
}
public async void CargarData(string idCliente)
{
var contenido = "";
HttpClient cliente = new HttpClient();
var restUrl = "https://*************/api/FacturaCliente?id=" + idCliente;
cliente.BaseAddress = new Uri(restUrl);
cliente.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage respuesta = await cliente.GetAsync(restUrl);
contenido = await respuesta.Content.ReadAsStringAsync();
var items = JsonConvert.DeserializeObject<List<Factura>>(contenido);
Facturas_List.ItemsSource = items;
}
#region Clase Facturas
public class Factura
{
public int ID { get; set; }
public string NumeroFactura { get; set; }
public string Total { get; set; }
}
#endregion
}
通过该参数的正确方法是什么?
1条答案
按热度按时间i34xakig1#
我从错误的Angular 看待这个问题。
我已经在类中有了数据,所以我所需要做的就是将它作为参数传递: