private bool dirChanged = true; //determines if directory has changed and is needed to reload #endregion Fields #region Constructors public PreviewView() { InitializeComponent(); FileSystem = new WindowsFileSystem(); History = new History<IDirectoryViewItem>(); Binding bind = new Binding("Items"); bind.Source = FileSystem; lbContent.SetBinding(ListBox.ItemsSourceProperty, bind); lbContent.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged); }
public DirectoryViewModel() { ExecuteItemCommand = new DelegateCommand(ExecuteExecuteItem, CanExecuteExecuteItem); History = new History<IDirectoryViewItem>(); FileSystem = new WindowsFileSystem(); propObserver = new PropertyObserver<DirectoryViewModel>(this); propObserver.RegisterHandler(x => x.SearchText, ManageSearch); fileSystemWatcher = new FileSystemWatcher { IncludeSubdirectories = false, }; fileSystemWatcher.Created += fileSystemWatcher_Changed; fileSystemWatcher.Renamed += fileSystemWatcher_Changed; fileSystemWatcher.Deleted += fileSystemWatcher_Changed; }
public ThreeColumnView() { InitializeComponent(); fileSystem1 = new WindowsFileSystem(); fileSystem2 = new WindowsFileSystem(); fileSystem3 = new WindowsFileSystem(); history = new History<IDirectoryViewItem>(); Binding bind2 = new Binding("Items");//bind to second(middle) ListBox bind2.Source = FileSystem; lbContent2.SetBinding(ListBox.ItemsSourceProperty, bind2); lbContent2.ItemContainerGenerator.StatusChanged += new EventHandler(ItemContainerGenerator_StatusChanged); }
private void bCompare_Click(object sender, RoutedEventArgs e) { //load directory content WindowsFileSystem fileSystem = new WindowsFileSystem(); IEnumerable<IDirectoryViewItem> leftItems = fileSystem.GetDirectoryContent(LeftDir); List<IDirectoryViewItem> rightItems = fileSystem.GetDirectoryContent(RightDir).ToList();//list need for remove functionality comparisonResult = new List<DirectoryComparison>(); IDirectoryViewItem rightItem; foreach (IDirectoryViewItem item in leftItems) { if (item == null || item.IsMoveUp) continue; rightItem = rightItems.SingleOrDefault(dvi => dvi != null && dvi.Name == item.Name);//right item that matches left name if (rightItem != null) { if (item.IsDirectory) comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.Equal)); else if (item.LastModifiedTime > rightItem.LastModifiedTime) comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.LeftNewer)); else if (item.LastModifiedTime < rightItem.LastModifiedTime) comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.RightNewer)); else comparisonResult.Add(new DirectoryComparison(item, rightItem, DirectoryComparisonResult.Equal)); rightItems.Remove(rightItem);//no need in futher comparison } else { comparisonResult.Add(new DirectoryComparison(item, null, DirectoryComparisonResult.LeftNewer)); } } //every item from right collection don't exist in left foreach (IDirectoryViewItem item in rightItems) { if (item == null || item.IsMoveUp) continue; comparisonResult.Add(new DirectoryComparison(null, item, DirectoryComparisonResult.RightNewer)); } lvCompare.ItemsSource = comparisonResult; }
private void ExecuteDropMove(object parameter) { var sourceFileSystem = new WindowsFileSystem(droppedFiles.First().FullName); var operation = new MoveOperation(droppedFiles, ActiveView.FullPath, sourceFileSystem, ActiveView.FileSystem); OperationsManager.ExecuteOperation(operation); }