Я список создатель:Сортировка ListBox объектов по атрибутам
List<Song> SongList = new List<Song>();
населена кучей:
SongList.Add(new Song(songID, "Dirt", "Alice in Chains", "Rooster", "Rock", "02:32"));
Подробности песен заполняются в ListBox по:
private void songTitle_TextChanged(object sender, EventArgs e)
{
i = 0;
for (; i < songTitle.Text.Length; i++)
{
songResultBox.Items.Clear();
var songResult = from song in SongList
where song.SongTitle != null && song.SongTitle.Length >= songTitle.Text.Length
&& songTitle.Text == song.SongTitle.Substring(0, i+1)
select new { sId = song.SongID, album = song.SongAlbum, artist = song.SongArtist, title = song.SongTitle,
genre = song.SongGenre, length = song.SongLength };
foreach (var item in songResult)
{
songResultBox.Items.Add(new Song(item.sId, item.album, item.artist, item.title, item.genre, item.length));
songResultBox.DisplayMember = "FullName";
songResultBox.ValueMember = "songID";
}
}
}
Вопрос: Как бы я создал кнопку (или 4 на самом деле), которая приняла содержимое ListBox 'songResultBox' и sor ted его содержание по названию, альбому, художнику, жанру и т. д.
Думаю, вам действительно нужно отсортировать источник данных в списке и снова привязать список. таким образом, вы имеете дело только со своими исходными структурами данных, а не с самим элементом управления ListBox –
источник данных из списка будет добавлен динамически во время выполнения. SongList.Add У меня есть только для целей тестирования. – mansonitefirefox
самым простым способом будет реализация функции «Сравнить» и использование 'List.Sort()' –