Я пытаюсь построить LongListSelector (инструментарий), используя ObservableCollection.Я следовал этому учебнику, и все отлично работает с примерами данных.Однако, как только я пытаюсь заполнить список данными, загруженными из Интернета, это становится беспорядком!Есть пустые группы, элементы размещены неправильно, и несколько вещей отсортированы по алфавиту.
Я использую этот код для создания пустых групп для всех букв:
private static readonly string Groups = "#abcdefghijklmnopqrstuvwxyz";
/* ... other things ... */
List<Country> empty = new List<Country>();
foreach (char c in Groups)
{
Group<Country> emptyGroup = new Group<Country>(c.ToString(), empty);
App.Colst.cityByCountryList.Add(emptyGroup);
}
Затем я создалWebClient, который загружает XML-файл из Интернета и анализирует его, добавляя элементы в группы следующим образом:
string id = dreader.GetAttribute("id");
string name = dreader.GetAttribute("name_it");
string citynumber = dreader.GetAttribute("citiesNumber");
if (id != null && id != "")
{
Group<Country> firstGroup = App.Colst.cityByCountryList[Groups.IndexOf(name.Substring(0, 1).ToLower())];
Country newCountry = new Country() { Lett = name.Substring(0, 1).ToLower(), Name = name };
firstGroup.Add(newCountry);
}
, и это результат (я новый пользователь и не могу загрузитьизображение ... поэтому я публикую ссылку):
Как видите, группа "f" создана правильно, но "Francia" должна бытьпод "F" вместо "м".Кроме того, «f» должно быть перед «g»: иногда группы сортируются правильно (например, «Австрия» не первая в файле xml, но она отображается вверху списка, где она должна быть!) Ииногда нет («Италия» - одна из первых стран, перечисленных в файле, но в списке она стоит после «и»!) ...
Есть идеи?
В любом случае, спасибо.