private void EnableButtons(bool isEnable) { if (isEnable) { var hasItem = AllVideoSource.Where(g => g.Any()).SelectMany(x => x).Any(); CheckListButtonEnable = hasItem; SynchronizeButtonEnable = true; MediaSearchButtonEnable = hasItem; if (_MediaSearchButtonEnable) { //비디오 목록의 조회가 완료되었음을 통지. (미디어 검색 패널 추가 허용) MessengerInstance.Send <Message>(new Message("PanelAddingAllowed", "Search"), MainViewModel.NAME); } } else { CheckListButtonEnable = false; SynchronizeButtonEnable = false; MediaSearchButtonEnable = false; } }
private void RegisterMessages() { //모든 비디오 메세지 수신 MessengerInstance.Register <Message>(this, NAME, (msg) => { if (!GeneralSetting.UseAllVideoSection) { return; } switch (msg.Key) { case "Activated": if (loadingMode != LoadingMode.None) { ReloadAllVideo(); } break; case "BackPressed": msg.GetValue <BackPressedEventArgs>().Handled = true; if (SelectionMode != ListViewSelectionMode.None) { //선택 모드 변경 SelectionMode = ListViewSelectionMode.None; ButtonGroupVisible = true; } else { //종료 확인 MessengerInstance.Send <Message>(new Message("ConfirmTermination", null), MainViewModel.NAME); } break; case "FolderAdded": //탐색기에서 새로운 폴더추가 Trigger loadingMode = LoadingMode.Syncing; break; case "FolderDeleted": //탐색기에서 추가된 폴더 삭제 Trigger loadingMode = LoadingMode.Syncing; break; case "ShowErrorFile": var list = AllVideoSource.Where(g => g.Any()).SelectMany(x => x); if (list.Any()) { var kv = msg.GetValue <KeyValuePair <string, MediaInfo> >(); var mi = list.FirstOrDefault(f => f.Path == kv.Value.Path); if (mi != null) { mi.OccuredError = kv.Key + "\n"; } } break; case "CheckFolderSyncForPlaylist": if (loadingMode == LoadingMode.Syncing) { //미리 강제 초기화 List <FolderInfo> folderList = null; InitializeAllVideos(out folderList); } break; } }); }