我有一个移动的应用程序,3个框架内分别有3个列表视图。当我第一次打开应用程序时,它看起来正常(3个列表视图包含任务列表),但当我接受一个任务时,它必须在“待处理列表”中,在其他列表视图中:
public async Task obtenerTareas(string idAgente)
{
try
{
// URL de la API que proporciona la lista de tareas
string apiUrl = "https://tareas.sistemaonline.com.ar/rest-api/AgentesRetails?agenteRetailGET=" + idAgente;
// Crear una instancia de HttpClient
HttpClient client = new HttpClient();
// Realizar una solicitud HTTP GET a la API
HttpResponseMessage response = await client.GetAsync(apiUrl);
// Si la solicitud fue exitosa
if (response.IsSuccessStatusCode)
{
// Leer el contenido de la respuesta como una cadena JSON
string jsonContent = await response.Content.ReadAsStringAsync();
// Deserializar la cadena JSON en una lista de objetos de tipo Tarea
ObservableCollection<Tarea> tareas = JsonConvert.DeserializeObject< ObservableCollection < Tarea >>(jsonContent);
Device.BeginInvokeOnMainThread(() =>
{
Lista.Clear(); // Limpia la lista existente
foreach (var tarea in tareas)
{
tarea.mes = "" + Convert.ToDateTime(tarea.fecha_sol).ToString("MMMM").Substring(0, 3).ToUpper() + "";
tarea.dia = " " + Convert.ToDateTime(tarea.fecha_sol).ToString("dd") + " ";
// Agrega elementos a la lista existente
}
Lista = tareas;
});
}
else
{
// Si la solicitud no fue exitosa, manejar el error según sea necesario
await appNotificacionesPush.App2.Current.MainPage.DisplayAlert("Error al cargar las tareas" + response.StatusCode, "ok", "ok");
}
}
catch (Exception ex)
{
await appNotificacionesPush.App2.Current.MainPage.DisplayAlert("Error" + ex.Message, "ok", "ok");
}
}
字符串
但名单不会在接受某人后自动更新。
public static ICommand RefrescarCommand { get; private set; }
private bool _esRefrescando;
public bool EsRefrescando
{
get { return _esRefrescando; }
set
{
if (_esRefrescando != value)
{
_esRefrescando = value;
OnPropertyChanged(nameof(EsRefrescando));
}
}
}
public string nombre { get; set; }
private ObservableCollection<Tarea> _lista;
public ObservableCollection<Tarea> Lista
{
get { return _lista; }
set
{
if (_lista != value)
{
_lista = value;
OnPropertyChanged(nameof(Lista));
}
}
}
private ObservableCollection<Tarea> _listaC;
public ObservableCollection<Tarea> ListaTareasCurso
{
get { return _listaC; }
set
{
if (_listaC != value)
{
_listaC = value;
OnPropertyChanged(nameof(ListaTareasCurso));
}
}
}
private ObservableCollection<Tarea> _listaP;
public ObservableCollection<Tarea> ListaTareasPendientes
{
get { return _listaP; }
set
{
if (_listaP != value)
{
_listaP = value;
OnPropertyChanged(nameof(ListaTareasPendientes));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public MvTareas()
{
this.nombre = "Hola" + Preferences.Get("usuario", "");
Lista = new ObservableCollection<Tarea>();
ListaTareasPendientes = new ObservableCollection<Tarea>();
ListaTareasCurso = new ObservableCollection<Tarea>();
obtenerTareas(Preferences.Get("idAgente", ""));
obtenerTareasP(Preferences.Get("idAgente", ""));
obtenerTareasC(Preferences.Get("idAgente", ""));
RefrescarCommand = new Command(ActualizarTareas);
}
public async void ActualizarTareas()
{
await obtenerTareas(Preferences.Get("idAgente", ""));
await obtenerTareasP(Preferences.Get("idAgente", ""));
await obtenerTareasC(Preferences.Get("idAgente", ""));
Device.BeginInvokeOnMainThread(() =>
{
EsRefrescando = false;
});
}
型
编辑:我的xaml文件与itemsource:
<Frame HasShadow="True" Margin="10" HeightRequest="300">
<StackLayout HorizontalOptions="FillAndExpand">
<Label Text="Tareas Disponibles" FontSize="Large" HorizontalOptions="Start" Margin="0,0,0,10" />
<ListView ItemsSource="{Binding Lista}" HasUnevenRows="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
...
型
1条答案
按热度按时间huwehgph1#
字符串
从你上面发布的代码中,我们可以发现你试图将另一个地址分配给另一个对象指向的
Lista
(代码为Lista = tareas;
)。这应该是导致数据不被刷新的原因。你可以尝试遍历列表
tareas
,并将元素逐个添加到Lista
中。如下所示:型