У меня проблема, и я понятия не имею, что делать. Я пытаюсь сделать простой список рекордов, и мне нужно получить номера (1,2,3,4 ...) для каждого балла.Добавление номеров строк Windows phone 7 listbox
XAML:
<ListBox x:Name="ListBox" ItemsSource="{Binding Source.View}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding ROW_NUMBER_HERE}"/>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Score}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
C#
public ObservableCollection<Item> Items { get; set; }
public System.Windows.Data.CollectionViewSource Source { get; set; }
public HighscorePage()
{
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("highscores"))
{
using (IsolatedStorageFileStream stream = store.OpenFile("highscores", FileMode.Open))
{
var serializer = new DataContractSerializer(typeof(ObservableCollection<Item>));
Items = (ObservableCollection<Item>)serializer.ReadObject(stream);
}
}
if (Items != null)
{
Source = new System.Windows.Data.CollectionViewSource();
Source.Source = Items;
Source.SortDescriptions.Add(new SortDescription("Score", ListSortDirection.Descending));
}
InitializeComponent();
DataContext = this;
}
Это товары ObservableCollection содержит имя и оценка данных.
Я попытался использовать обычный цикл while для добавления чисел без успеха. И я не мог заставить AlternationCount работать. Поддерживается ли она даже в wp7? Есть идеи?
Спасибо!
Благодарим вас за ответ. Мне нравится эта идея, чтобы создать новый список с номерами, но в моем случае я не уверен, могу ли я это сделать. Ну, я использую наблюдаемый набор, потому что мне нужно сортировать список по баллам, и после этого мне нужно добавить эти «номера строк». И на самом деле я использую этот же файл/список в двух разных списках, отсортированных по уровню игрока (простой, обычный). Еще один список включает «легкие» оценки уровня и еще один «нормальный» уровень. Но давайте держать это просто :) Возможно, я мог бы открыть данные, отсортировать и отфильтровать их, а после этого поместить их номерами строк в два разных списка. Я попробую! Благодаря! – Arnoho
@Arnoho, если ничего другого, использующего расширенный класс для ваших данных, который говорит с различными потребностями представления, является хорошим местом для начала. – OmegaMan
Прошу прощения, но я не понимаю, что вы имеете в виду?
Простейший способ решить мою проблему - добавить числа 1,2,3,4,5 ..., n для каждого элемента LISTBOX, а не для моего элемента данных.
Элементы данных сортируются по счету игрока, а при загрузке страницы рекорда они переходят в список. Вот почему это число нужно дать, когда система загружает элементы списка в xaml.
Я действительно не знаю, как это объяснить, но мне не нужно сохранять это число в data.Only цель показать его в списке.
Так список будет выглядеть следующим образом:
1. игроком 200p
2. Player2 10p
3. player3 0p
... и так далее. – Arnoho