private void NextExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            if (this.currentTrack != null && this.trackList.Count > 1)
            {
                this.MyMediaElement.Stop();
                this.trackList.Remove(this.currentTrack);
                if (this.MusicListBox.SelectedItem != null)
                {
                    var albumD = this.albumCollection.SingleOrDefault(
                        x => x != null && x.IsNotNull && x.AlbumNo == StringHelper.Left(this.currentTrack.TrackNo, 4));
                    ;
                    ////albumD.IsPlaying = false;
                    this.MusicListBox.Items.Refresh();
                }

                if (this.trackList.Count > 0)
                {
                    this.currentTrack = this.trackList[0];
                    this.MusicListBox.SelectedItem =
                        this.albumCollection.SingleOrDefault(

                        x => x != null && x.IsNotNull && x.AlbumNo == StringHelper.Left(this.currentTrack.TrackNo, 4));

                    //this.SongListBox.SelectedItem =
                    //    (this.MusicListBox.SelectedItem as AlbumDirectory).SongCollection.SingleOrDefault(
                    //        x => x.Track == Int32.Parse(StringHelper.Right(this.currentTrack.TrackNo, 2)));
                    var song = (this.MusicListBox.SelectedItem as AlbumDirectory).SongCollection.SingleOrDefault(
                            x => x.Track == Int32.Parse(StringHelper.Right(this.currentTrack.TrackNo, 2)));
                    this.MyMediaElement.Source = new Uri(song.FileName);
                    this.PlayingSongTextBlock.Text = song.Title;
                    this.MyMediaElement.Play();
                    ////foreach (var directory in this.albumCollection)
                    ////{
                    ////    if (directory != null)
                    ////    {
                    ////        directory.IsPlaying = false;
                    ////    }
                    ////}

                    ////(this.MusicListBox.SelectedItem as AlbumDirectory).IsPlaying = true;
                    this.MusicListBox.Items.Refresh();
                    this.NavigateToSelectedAlbum(this.MusicListBox.SelectedItem as AlbumDirectory);
                    this.BindingToAlbumSelected(this.MusicListBox.SelectedItem as AlbumDirectory);
                }
            }

            if (e != null)
            {
                e.Handled = true;
            }
        }
        private void SongListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var song = this.SongListBox.SelectedItem as Song;
            var album = this.MusicListBox.SelectedItem as AlbumDirectory;
            string index;
            if (song.Track > 0 && song.Track < 10)
            {
                index = album.AlbumNo + "0" + song.Track.ToString();
            }
            else
            {
                index = album.AlbumNo + "0" + song.Track.ToString();
            }

            // Ad all track by 00 track
            if (index == (album.AlbumNo + "00"))
            {
                if (this.trackList.Count == 0)
                {
                    var song1 = album.SongCollection.SingleOrDefault(x => x.Track == 1);
                    this.MyMediaElement.Source = new Uri(song1.FileName);
                    this.PlayingSongTextBlock.Text = song1.Title;
                    this.MyMediaElement.Play();
                    ////(this.MusicListBox.SelectedItem as AlbumDirectory).IsPlaying = true;
                    this.MusicListBox.Items.Refresh();
                    this.currentTrack = new Track()
                                            {
                                                TrackNo = album.AlbumNo + "01",
                                                Album = (this.MusicListBox.SelectedItem as AlbumDirectory).AlbumName,
                                                Artist = (this.MusicListBox.SelectedItem as AlbumDirectory).ArtistName,
                                                SongName = song1.Title
                                            };
                }

                foreach (var song1 in album.SongCollection)
                {
                    if (song1.Track != 0)
                    {
                        var track1 = new Track()
                        {
                            Album = (this.MusicListBox.SelectedItem as AlbumDirectory).AlbumName,
                            Artist = (this.MusicListBox.SelectedItem as AlbumDirectory).ArtistName,
                            SongName = song1.Title
                        };
                        string num;
                        if (song.Track > 0 && song.Track < 10)
                        {
                            num = album.AlbumNo + "0" + song1.Track.ToString();
                        }
                        else
                        {
                            num = album.AlbumNo + "0" + song1.Track.ToString();
                        }

                        track1.TrackNo = num;
                        this.trackList.Add(track1);
                    }
                }

                PopupTextBlock.Text = string.Format("Add {0} Tracks to TrackList completed", album.SongCollection.Count - 1);
            }
            else
            {
                if (this.trackList.Count == 0)
                {
                    this.MyMediaElement.Source = new Uri(song.FileName);
                    this.PlayingSongTextBlock.Text = song.Title;
                    this.MyMediaElement.Play();
                    ////foreach (var directory in this.albumCollection)
                    ////{
                    ////    if (directory != null)
                    ////    {
                    ////        directory.IsPlaying = false;
                    ////    }
                    ////}

                    ////(this.MusicListBox.SelectedItem as AlbumDirectory).IsPlaying = true;
                    this.MusicListBox.Items.Refresh();
                    this.currentTrack = new Track()
                                            {
                                                TrackNo = index,
                                                Album = (this.MusicListBox.SelectedItem as AlbumDirectory).AlbumName,
                                                Artist = (this.MusicListBox.SelectedItem as AlbumDirectory).ArtistName,
                                                SongName = song.Title
                                            };
                }

                this.trackList.Add(new Track()
                    {
                        TrackNo = index,
                        Album = (this.MusicListBox.SelectedItem as AlbumDirectory).AlbumName,
                        Artist = (this.MusicListBox.SelectedItem as AlbumDirectory).ArtistName,
                        SongName = song.Title
                    });
                PopupTextBlock.Text = string.Format("Add {0} to TrackList completed", index);
            }

            if (this.PlayGrid.DataContext == null)
            {
                this.BindingToAlbumSelected(album);
            }

            if (popup1.IsOpen == false)
            {
                popup1.IsOpen = true;
                _timer.Start();
            }

            this.TrackListBox.ItemsSource = this.trackList;
        }
        void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            albumCollection = new ObservableCollection<AlbumDirectory>();
            string recentAlbumsFilePath = Directory.GetCurrentDirectory() + @"\Albums.xml";
            if (File.Exists(recentAlbumsFilePath))
            {
                var albums = Serializer<Albums>.DeserializeFromFile(recentAlbumsFilePath);

                this.albumCollection = new ObservableCollection<AlbumDirectory>(albums.AlbumDirectories);
                if (albums.TrackList != null && albums.TrackList.Count > 0)
                {
                    this.trackList = new ObservableCollection<Track>(albums.TrackList);
                    this.currentTrack = this.trackList[0];
                    var albumD =
                        this.albumCollection.SingleOrDefault(
                            x => x != null && x.IsNotNull && x.AlbumNo == StringHelper.Left(this.currentTrack.TrackNo, 4));

                    this.NavigateToSelectedAlbumAndSong(albumD);
                    this.BindingToAlbumSelected(albumD);
                }
                else
                {
                    this.MusicListBox.ItemsSource = albumCollection.Take(12);
                }

                this.TrackListBox.ItemsSource = this.trackList;
                this.AddToCollectionTopAlbumByGenre("Pop");
            }
        }