public PlayerViewModel(IPlayerModel _model) { this.Model = _model; Helpers.SaveAudios.AddCache(); Model.AddCacheToList(SaveAudiosList); if (SaveAudiosList.Items.Count != 0) { NoSaveMusic = Visibility.Hidden; } Model.GetUserAudio(); State = PlaylistState.Own; //Асинхронная загрузка аудио пользователя var sourceOwnMusic = new SourceList <OneAudioViewModel>(); sourceOwnMusic.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(UserAudios).DisposeMany().Subscribe(); Model.AddAudioToListAsync(ApiDatas.Audio, sourceOwnMusic); //Установка параментров плеера Playlist = new Playlist(new OwnAudios(this)); Playlist.SetAudioInfo(this); Volume = 30; Player.controls.stop(); //Асинхронное получение плейлистов var sourceAlbums = new SourceList <AlbumViewModel>(); sourceAlbums.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(PlayLists).DisposeMany().Subscribe(); Model.GetPlaylistsAsync(UserDatas.UserId, sourceAlbums); //Ассинхронная загрузка друзей var sourceFriendsMusic = new SourceList <FriendsMusicViewModel>(); sourceFriendsMusic.Connect().ObserveOn(RxApp.MainThreadScheduler).Bind(FriendsMusic).DisposeMany() .Subscribe(); Model.DownloadFriendsWithOpenAudioAsync(sourceFriendsMusic); FriendsMusicSelectedIndex = -1; _durrationTimer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, 20) }; _durrationTimer.Tick += DurrationTimer_Tick; _durrationTimer.Start(); }