【发布时间】:2015-05-26 12:08:29
【问题描述】:
我不想随机数,我想随机化 C# XAML Windows Store App 列表框中的所有项目??
任何人都有代码或知道如何做到这一点?
我有这个列表框代码
<ListBox Name="Playlist" Background="White" DoubleTapped="Playlist_DoubleTapped" KeyUp="Playlist_KeyUp"
Foreground="Black" SelectionMode="Single" SelectionChanged="Playlist_SelectionChanged"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
Grid.Column="0" Margin="28,82,1067,32">
@Baldrick 这就是我将歌曲/视频添加到播放列表列表框的方式
public async void OpenFileButton_Click(object sender, RoutedEventArgs e)
{
FileOpenPicker filePicker = new FileOpenPicker();
filePicker.ViewMode = PickerViewMode.List;
filePicker.SuggestedStartLocation = PickerLocationId.MusicLibrary;
filePicker.CommitButtonText = "Play";
foreach (string fileExtension in supportedAudioFormats)
{
filePicker.FileTypeFilter.Add(fileExtension);
}
foreach (string fileExtension in supportedVideoFormats)
{
filePicker.FileTypeFilter.Add(fileExtension);
}
IReadOnlyList<StorageFile> selectedFiles = await filePicker.PickMultipleFilesAsync();
if (selectedFiles.Count > 0)
{
foreach (StorageFile file in selectedFiles)
{
Playlist.Items.Add(file);
}
systemMediaControls.IsEnabled = true;
mediaSource.AutoPlay = true;
await SetNewMediaItem(0); // Start with first file in the list of picked files.
StorageFile files = Playlist.SelectedItem as StorageFile;
Thumbnail(files);
}
}
【问题讨论】:
-
什么函数或事件会触发列表框项目的随机化?
-
Click="Button_Click" 将是随机化列表框中所有项目的按钮
-
您最好将
ItemsSource属性绑定到视图模型中的后备列表(例如 ObservableCollection),然后在绑定列表上使用 Fischer-Yates shuffle。这更简洁,并且可以让您不必弄乱 ListBox 中的项目。 -
能贴出
Button_Click事件触发的函数吗? -
@Nathan 好吧,我目前正在使用音乐播放器应用程序..我可以随机选择索引..但我想随机选择整个列表..请告诉我如何做 public void Button_Click (对象发送者,RoutedEventArgs e) { Rand(); } public void Rand() { Playlist.SelectedIndex = rnd.Next(Playlist.Items.Count - 1); }
标签: c# xaml random listbox windows-store-apps