public FileBrowserPage() { InitializeComponent(); BindingContext = viewModel = new FileBrowserViewModel(); listView.RefreshCommand = new Command(async() => { await viewModel.UpdateDirectory(); listView.IsRefreshing = false; }); }
private async void listView_ItemTapped(object sender, ItemTappedEventArgs e) { CtFileItem item = (CtFileItem)e.Item; if (item.Name == "/") { await viewModel.BackDirectory(); } else { if (item.IsDirectory) { string[] menus = new string[] { "열기", "이름 바꾸기", "삭제" }; string select1 = await DisplayActionSheet(item.Name, "취소", null, menus); switch (select1) { case "열기": await viewModel.MoveDirectory(item.Name); break; case "이름 바꾸기": renameMode = true; renameFolder = item; foldernameentry.Text = item.Name; overlay.IsVisible = true; break; case "삭제": if (await DisplayAlert("알림", "폴더를 지우시겠습니까?", "확인", "취소")) { var number = await viewModel.GetSubItemNumber(item); if (0 < number) { if (await DisplayAlert("알림", $"{number}개의 하위항목이 존재합니다. 정말로 폴더를 지우시겠습니까?", "확인", "취소")) { viewModel.DeleteFolder(item); await viewModel.UpdateDirectory(); } } else if (number < 0) { await DisplayAlert("알림", "오류 발생", "확인"); } else { viewModel.DeleteFolder(item); await viewModel.UpdateDirectory(); } } else { return; } break; } } else { string[] menus = new string[] { "열기", "삭제" }; string select1 = await DisplayActionSheet(item.Name, "취소", null, menus); switch (select1) { case "열기": viewModel.OpenFile(item); break; case "삭제": if (await DisplayAlert("알림", "파일을 지우시겠습니까?", "확인", "취소")) { viewModel.DeleteFile(item); await viewModel.UpdateDirectory(); } else { return; } break; } } } }