【发布时间】:2010-09-03 16:13:44
【问题描述】:
我需要洗牌 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;
}
奇怪的是,即使我在设置 SongsDataSource 方法后使用 GridControl.RefreshDataSource() 方法,它似乎也没有反映对 GridControl 的更改。如果我检查 DataSource 顺序,则 shuffle 成功发生。
谢谢。
【问题讨论】:
标签: data-binding gridview c#-4.0 devexpress