我有一個從 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
}
通過該引數的正確方法是什么?
uj5u.com熱心網友回復:
我從錯誤的角度看待這個問題。
我已經有了類中的資料,所以我需要做的就是將它作為引數傳遞:
public void TapCliente(object sender, ItemTappedEventArgs e)
{
var clte = (Cliente)Clientes_List.SelectedItem;
Navigation.PushModalAsync(new Facturas(clte.ID.ToString()));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/506316.html
上一篇:UWP和WinUI3中的FallbackValue和TargetNullValue有什么區別?
下一篇:根據螢屏解析度選擇視圖
