У меня есть ниже класс ArtistAlbum
:Получить индекс LongListSelector SelectedItem с Jumplist и DataSource как List <AlphaKeyGroup <Artist>> где художник пользовательский класс
public class Artist
{
public string ArtistName { get; set; }
}
Это LonglistSelector
принадлежит MusicPage.xaml
и после получения индекса из LongListSelector.SelectedItem
, я хотел бы получить детали коллекции Artist
по указанному выше индексу на другой странице и, следовательно, использовать GlobalVars
. Но я не могу получить индекс LongListSelector
.
private void llsArtists_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Getting the index here from llsArtists.ItemsSource by using IndexOf
// doesn't work and returns -1
// Get the ID here and save it to GlobalVars._artistID;
NavigationService.Navigate(new Uri("/ArtistDetail.xaml", UriKind.Relative));
}
Метод ниже отвечает за получение результатов в коллекции.
void GetArtists()
{
this.Dispatcher.BeginInvoke(() =>
{
for (int i = 0; i < ml.Artists.Count; i++)
{
sourceArtists.Add(new Artist
{
ArtistName = ml.Artists[i].Name.ToUpper(),
});
List<AlphaKeyGroup<Artist>> DataSource = AlphaKeyGroup<Artist>.CreateGroups(sourceArtists,
System.Threading.Thread.CurrentThread.CurrentUICulture,
(Artist s) => { return s.ArtistName; }, true);
llsArtists.ItemsSource = DataSource;
}
});
}
Пожалуйста, смотрите изображение ниже структуры ItemSource
Вы пытались ответить на мой предыдущий вопрос, только с приведением к 'Художнику' вместо этого? –
Hi Yuval, Да, я сделал - он все еще возвращает индекс -1, а тип - это 'Artist', который он должен быть. – 2014-09-27 11:10:00
Следует также отметить, что ItemsSource является «AlphaKeyGroup» (используется JumpList), и поэтому он также содержит заголовки групп для пустого JumpList. Кроме того, извинения, если это может быть не лучшим способом, но это также как вложенный список (см. Мое изображение в вопросе). Поэтому я подозреваю, что мне, возможно, придется использовать 1IndexOf (что-то.IndexOf (x)) '?? Может быть ? – 2014-09-27 11:15:42