Мне нужно перетасовать источник данных GridControl. Я использую это свойство в UserControl:
private List<Song> _songsDataSource;
public List<Song> SongsDataSource
{
get { return _songsDataSource; }
set
{
_songsDataSource = value;
if (!value.IsNull())
{
SongsBindingList = new BindingList<Song>(value);
songsBinding.DataSource = SongsBindingList;
}
}
}
Затем я использую метод, который я клонирую, перемешиваю и добавляю к свойству SongsDataSource:
List<Song> newList = HelpClasses.Shuffle((List<Song>) SongsDataSource.Clone());
SongsDataSource = newList;
public static List<Song> Shuffle(List<Song> source)
{
for (int i = source.Count - 1; i > 0; i--)
{
int n = rng.Next(i + 1);
Song tmp = source[n];
source[n] = source[i - 1];
source[i - 1] = tmp;
}
return source;
}
Странно то, что он не отражает изменений в GridControl, даже если я использую метод GridControl.RefreshDataSource () после установки метода SongsDataSource. Если я проверяю порядок источника данных, случайное перемешивание произошло успешно.
Спасибо.