¿Cómo vincular elementos del cuadro de lista usando la colección observable en wp7?
Frecuentes
Visto 389 equipos
0
Mi código:
ObservableCollection<SampleCheckedData> interestrates = new ObservableCollection<SampleCheckedData>();
XDocument xmlDocu = XDocument.Load(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result)));
interestrates = (from rts in xmlDocu.Descendants("Friend")
select new SampleCheckedData
{
Id = (string)rts.Element("userid"),
Name = (string)rts.Element("name"),
Icon = (string)rts.Element("imageurl"),
VisibleStatus = (string)rts.Element("visiblestatus"),
AppStatus = (string)rts.Element("loginstatus"),
imgBubble =bitmapRed,
}).ToList<SampleCheckedData>();
Luego, obtener un error no puede convertir implícitamente system.collection.generic.list en system.collection.observablecollection de esa manera. ¿Cómo vincular elementos del cuadro de lista usando la colección observable?
EDIT:
Button b = sender as Button;
var res = interestrates.Where(a => a.Id.Equals(((System.Windows.FrameworkElement)(e.OriginalSource)).Tag)).ToList();
if (res.Count == 1)
interestrates.Remove(res.First());
interestrates = new ObservableCollection<SampleCheckedData>();
lstFriendRequuest.ItemsSource = "";
bindGetFriends();
Aquí eliminando con éxito el elemento de la lista, pero después de llamar a bindGetFriends () para vincular los elementos nuevamente, entonces no obtengo elementos nuevos que obtienen elementos antiguos. ¿Por qué el servicio devuelve la lista de elementos antiguos?
2 Respuestas
3
Utilice esta extensión:
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
public static class Extensions
{
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> collection)
{
var observableCollection = new ObservableCollection<T>();
foreach (var item in collection) observableCollection.Add(item);
return observableCollection;
}
}
Uso:
interestrates = (from rts in xmlDocu.Descendants("Friend")
select new SampleCheckedData
{
Id = (string)rts.Element("userid"),
Name = (string)rts.Element("name"),
Icon = (string)rts.Element("imageurl"),
VisibleStatus = (string)rts.Element("visiblestatus"),
AppStatus = (string)rts.Element("loginstatus"),
imgBubble =bitmapRed,
}).ToObservableCollection<SampleCheckedData>();
Respondido el 12 de junio de 12 a las 11:06
1
Cambie su colección Observable a Lista,
List<SampleCheckedData> interestrates = new List<SampleCheckedData>();
También puede vincular List a ListBox, en lugar de ObservableCollection
Y para resolver su otro problema de eliminar el elemento seleccionado del cuadro de lista, intente con el siguiente código:
var selectedIndex = listbox.SelectedIndex;
var listItems = listbox.ItemsSource as List<SampleCheckedData>;
listItems.RemoveAt(selectedIndex);
listbox.ItemsSource = null;
listbox.ItemsSource = listItems;
Si todavía tiene problemas, hágamelo saber
Respondido el 12 de junio de 12 a las 11:06
Al usar el cuadro de lista, me enfrento a que el cuadro de lista no se actualiza cuando se elimina el elemento de ese cuadro de lista, por lo que se usa una colección observable. - WP7
¿Cómo vincular elementos del cuadro de lista usando una colección observable? - WP7
listItems.RemoveAt(selectedIndex);obteniendo error de índice de parámetro. - WP7
¿Cuál es el mensaje de error exacto que está recibiendo? En la depuración, intente averiguar si el valor del índice seleccionado es correcto o no: nkchandra
obteniendo el valor del índice seleccionado como -1. - WP7
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas windows-phone-7 or haz tu propia pregunta.
dar error ToObservableCollection no contiene una definición para ello. - WP7
agregué la clase estática anterior pero arrojé un error porque no contaba con ToObservableCollection - WP7
Los códigos publicados se denominan "método de extensión" y deben estar disponibles donde desee usarlos. Asegúrate de no perderte un "uso" - dominik kirschenhofer
¿Por qué el cuadro de lista no actualiza los elementos? Por favor, dígame... compruebe mi código de edición. - WP7