コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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;
                }
            });
        }