public void Focus(FileSystemInfoEx itemToFocus) { this.Dispatcher.BeginInvoke(DispatcherPriority.Background, new ThreadStart(delegate { FileListViewItemViewModel selectedVM = RootModel.CurrentDirectoryModel[itemToFocus]; RootModel.CurrentDirectoryModel.UnselectAll(); if (selectedVM != null) { selectedVM.IsSelected = true; if (this.View is GridView) { this.ScrollIntoView(selectedVM); } else { VirtualWrapPanel vwp = UITools.FindVisualChild <VirtualWrapPanel>(this); int idx = Items.IndexOf(selectedVM); if (vwp != null && idx != -1) { Rect rect = vwp.GetChildRect(idx); if (vwp.Orientation == Orientation.Horizontal) { vwp.SetVerticalOffset(rect.Top); } else { vwp.SetHorizontalOffset(rect.Left); } } } } })); }
private void ListViewFile_DropIn(object sender, DragEventArgs e) { var listView = sender as ListView; if (e.Data.GetDataPresent(typeof(System.Collections.IList))) { System.Collections.IList FileList = e.Data.GetData(typeof(System.Collections.IList)) as System.Collections.IList; foreach (var v in FileList) { FileListViewItemViewModel flvivm = v as FileListViewItemViewModel; if (flvivm != null) { // this._Files.Add(new FileData(flvivm.FullName)); FileData fd = new FileData(flvivm.FullName); if (!this.Files.Contains(fd)) { this.Files.Add(fd); } } } //index为放置时鼠标下元素项的索引 } }