private bool Read(string folder, out List <CheckableExtItem> items) { items = null; DirectoryInfo dirInfo = new DirectoryInfo(folder); FileInfo[] fileInfos = dirInfo.GetFiles(); List <string> exts = new List <string>(); List <CheckableExtItem> extItems = new List <CheckableExtItem>(); foreach (FileInfo info in fileInfos) { string extension = info.Extension; CheckableExtItem extItem; int index = extItems.FindIndex(item => item.Extension.Equals(extension)); if (index < 0) { exts.Add(info.Extension); extItem = new CheckableExtItem(info.Extension); extItem.PathList = new BindingList <string>(); extItems.Add(extItem); } else { extItem = extItems[index]; } extItem.PathList.Add(info.FullName); } items = extItems; return(true); }
private void ExtensionSelectionChanged(object sender, SelectionChangedEventArgs e) { bool hasAdded = e.AddedItems != null && e.AddedItems.Count > 0; bool hasRemoved = e.RemovedItems != null && e.RemovedItems.Count > 0; if (hasAdded || hasRemoved) { //Update path list of selected extension var pathList = new List <string>(); foreach (var item in List00.SelectedItems) { CheckableExtItem checkable = item as CheckableExtItem; if (checkable != null) { pathList.AddRange(checkable.PathList); } } List01.ItemsSource = pathList; } }