// プロセスの終了を捕捉する Exited イベントハンドラ private void Process_Exited(object sender, EventArgs e) { var proc = (System.Diagnostics.Process)sender; var process = DisplayFileInfoList.Where(x => x?.Process?.Id == proc?.Id); if (process.Any()) { foreach (var item in process) { item.Process = null; item.Processing = false; } } process = FileInfoList.Where(x => x?.Process?.Id == proc?.Id); if (!process.Any()) { return; } foreach (var item in process) { item.Process = null; item.Processing = false; } }
public void SynchronizeDisplayFileList() { DisplayFileInfoList.Clear(); foreach (var item in FileInfoList) { DisplayFileInfoList.Add(item); } }
protected bool CanProcessStart() { if (SelectedFileInfo == null) { return(false); } return(DisplayFileInfoList.Any() && SelectedFileInfo.Process == null); }
protected void RemoveItem() { var index = DisplayFileInfoList.IndexOf(SelectedFileInfo); FileInfoList.Remove(SelectedFileInfo); DisplayFileInfoList.Remove(SelectedFileInfo); //選択アイテムの更新 if (DisplayFileInfoList.Count == 0) { //表示対象がない index = -1; } else if (DisplayFileInfoList.Count <= index) { index = DisplayFileInfoList.Count - 1; } else { //何もしない } if (index >= 0) { DisplayFileInfoList.ElementAt(index).IsSelected = true; } //フィルタの更新 var missingKeywordList = new List <Extension>(); foreach (var item in ExtensionList) { missingKeywordList.Add(item); } missingKeywordList.RemoveAt(0); foreach (var item in DisplayFileInfoList) { var extension = Path.GetExtension(item.FilePath); var extensionItems = ExtensionList.Where(x => x.Name == extension); if (extensionItems.Any()) { foreach (var extItem in extensionItems) { missingKeywordList.Remove(extItem); } } } foreach (var item in missingKeywordList) { ExtensionList.Remove(item); } HasItem = FileInfoList.Any(); }
/// <summary> /// フィルタする /// </summary> private void FilterInternal() { var filteredList = FileInfoList.Select(x => x); if (m_FilterExtension == "(指定なし)") { filteredList = filteredList.Where(x => x.FilePath.Contains(m_FilterKeyword)); } else { filteredList = filteredList.Where(x => Path.GetExtension(x.FilePath) == m_FilterExtension && x.FilePath.Contains(m_FilterKeyword)); } DisplayFileInfoList.Clear(); foreach (var item in filteredList) { DisplayFileInfoList.Add(item); } IsFiltering = true; }