private void ClearSearch() { SearchedItems = new ObservableCollection <TreeViewItemAdv>(); foreach (Model model in Treeview.ItemsSource) { TreeViewItemAdv mainitem = Treeview.ItemContainerGenerator.ContainerFromItem(model) as TreeViewItemAdv; if (mainitem != null) { ApplyInline(mainitem, false); } foreach (Model level2 in model.Children) { TreeViewItemAdv level2item = mainitem.ItemContainerGenerator.ContainerFromItem(level2) as TreeViewItemAdv; if (level2item != null) { ApplyInline(level2item, false); } if (level2item != null) { foreach (Model level3 in level2.Children) { TreeViewItemAdv level3item = level2item.ItemContainerGenerator.ContainerFromItem(level3) as TreeViewItemAdv; if (level3item != null) { ApplyInline(level3item, false); } } } } } Treeview.UpdateLayout(); }
private void Search() { ClearSearch(); if (!string.IsNullOrEmpty(SearchTextBox.Text)) { string searchText = SearchTextBox.Text; foreach (Model model in Treeview.ItemsSource) { TreeViewItemAdv mainitem = Treeview.ItemContainerGenerator.ContainerFromItem(model) as TreeViewItemAdv; if (mainitem != null && MatchSearchText(model.Header)) { //Function which is used to apply inline to the TextBlock ApplyInline(mainitem, false); } foreach (Model level2 in model.Children) { if (MatchSearchText(level2.Header) || level2.Children.Count > 0) { mainitem.IsExpanded = true; Treeview.UpdateLayout(); } TreeViewItemAdv level2item = mainitem.ItemContainerGenerator.ContainerFromItem(level2) as TreeViewItemAdv; if (level2item != null) { ApplyInline(level2item, false); } if (level2item != null) { foreach (Model level3 in level2.Children) { if (MatchSearchText(level3.Header) || level3.Children.Count > 0) { level2item.IsExpanded = true; Treeview.UpdateLayout(); } TreeViewItemAdv level3item = level2item.ItemContainerGenerator.ContainerFromItem(level3) as TreeViewItemAdv; if (level3item != null) { ApplyInline(level3item, false); } } } } } if (SearchedItems != null && SearchedItems.Count > 0) { ApplyInline(SearchedItems[0], true); SearchedItems[0].BringIntoView(); matchindex = 0; } } }
public void OnDemandLoad(TreeViewItemAdv treeitem) { if (treeitem != null) { this.TreeItem = treeitem as TreeViewItemAdv; this.currentItem = TreeItem.DataContext as IFile; timer.Start(); } }
public void DragEnd(object sender, DragTreeViewItemAdvEventArgs e) { e.Cancel = false; TreeViewItemAdv drop = e.TargetDropItem as TreeViewItemAdv; if (drag != null && drop != null && drag.ParentItemsControl == drop.ParentItemsControl) { e.Cancel = true; } }
private void BuildDirectoryTree(TreeViewItemAdv item, IFile file) { string path = ""; if (item != null && file != null) { if (file.Info is DriveInfo) { path = ((DriveInfo)file.Info).Name; } else if (file.Info is DirectoryInfo) { path = ((DirectoryInfo)file.Info).FullName; } if (String.IsNullOrEmpty(path)) { return; } DirectoryInfo info = new DirectoryInfo(path); if (info.Exists) { try { DirectoryInfo[] infos = info.GetDirectories(); foreach (DirectoryInfo directory in infos) { Directory _file = new Directory(); _file.Name = directory.Name; _file.Info = directory; BitmapImage image = new BitmapImage(new Uri("folder.png", UriKind.RelativeOrAbsolute)); _file.Icon = image; ((Directory)file).Files.Add(_file); ((Directory)file).Items.Add(_file); } } catch (Exception e) { MessageBox.Show(e.Message); } } else { MessageBox.Show("The Device is not ready.", "Disk Error", MessageBoxButton.OK, MessageBoxImage.Error); } item.IsLoadOnDemand = false; } }
internal static TextBlock GetEditableTextBlock(TreeViewItemAdv item) { if (item != null) { TextBlock oobj = null; if (oobj == null) { oobj = VisualUtils.FindDescendant(item.Template.FindName("PART_Header", item) as ContentPresenter, typeof(TextBlock)) as TextBlock; } return(oobj); } else { return(null); } }
private void BuildItemsTree(TreeViewItemAdv item, IFile file) { string path = ""; if (file != null) { bool isloaded = ((Directory)file).Items.Count > 0; if (file != null) { if (file.Info is DriveInfo) { path = ((DriveInfo)file.Info).Name; } else if (file.Info is DirectoryInfo) { path = ((DirectoryInfo)file.Info).FullName; } if (!isloaded) { DirectoryInfo info = new DirectoryInfo(path); if (info.Exists) { try { DirectoryInfo[] infos = info.GetDirectories(); foreach (DirectoryInfo directory in infos) { Directory _file = new Directory(); _file.Name = directory.Name; _file.Info = directory; _file.FileType = "File Folder"; BitmapImage image = new BitmapImage(new Uri("/WindowsExplorerDemo;component/folder.png", UriKind.RelativeOrAbsolute)); _file.Icon = image; _file.DateModified = directory.LastWriteTime; ((Directory)file).Files.Add(_file); ((Directory)file).Items.Add(_file); } FileInfo[] files = info.GetFiles(); foreach (FileInfo directory in files) { Directory _file = new Directory(); _file.Name = directory.Name; _file.Info = directory; _file.FileType = directory.Extension; _file.Size = directory.Length / 1024; _file.Icon = ExtractIcon(directory); _file.DateModified = directory.LastWriteTime; ((Directory)file).Items.Add(_file); } } catch (Exception e) { MessageBox.Show(e.Message); } } else { MessageBox.Show("The Device is not ready.", "Disk Error", MessageBoxButton.OK, MessageBoxImage.Error); } } } } }
public MainWindow() { InitializeComponent(); TreeViewAdv treeViewAdv = new TreeViewAdv(); TreeViewItemAdv root1 = new TreeViewItemAdv() { Header = "Marital Status" }; TreeViewItemAdv subitem11 = new TreeViewItemAdv() { Header = "Single" }; TreeViewItemAdv subitem12 = new TreeViewItemAdv() { Header = "Married" }; TreeViewItemAdv subitem13 = new TreeViewItemAdv() { Header = "Married with Children" }; root1.Items.Add(subitem11); root1.Items.Add(subitem12); root1.Items.Add(subitem13); TreeViewItemAdv root2 = new TreeViewItemAdv() { Header = "Baby Vaccines" }; TreeViewItemAdv subitem21 = new TreeViewItemAdv() { Header = "Hepatitis B" }; TreeViewItemAdv subitem22 = new TreeViewItemAdv() { Header = "Tetanus" }; TreeViewItemAdv subitem23 = new TreeViewItemAdv() { Header = "Polio" }; TreeViewItemAdv subitem24 = new TreeViewItemAdv() { Header = "Measles" }; root2.Items.Add(subitem21); root2.Items.Add(subitem22); root2.Items.Add(subitem23); root2.Items.Add(subitem24); TreeViewItemAdv root3 = new TreeViewItemAdv() { Header = "Baby Vaccines" }; treeViewAdv.Items.Add(root1); treeViewAdv.Items.Add(root2); treeViewAdv.Items.Add(root3); Grid.Children.Add(treeViewAdv); root1.IsExpanded = true; }
internal void ApplyInline(TreeViewItemAdv item, bool issearchhighlightbrush) { var tempSearchText = SearchTextBox.Text; String[] metaCharacters = { "\\", "^", "$", "{", "}", "[", "]", "(", ")", ".", "*", "+", "?", "|", "<", ">", "-", "&" }; if (metaCharacters.Any(tempSearchText.Contains)) { for (int i = 0; i < metaCharacters.Length; i++) { if (tempSearchText.Contains(metaCharacters[i])) { tempSearchText = tempSearchText.Replace(metaCharacters[i], "\\" + metaCharacters[i]); } } } Regex regex = null; if (!string.IsNullOrEmpty(tempSearchText)) { if (this.SearchType == SearchType.StartsWith) { if (!(bool)CaseSensitiveSearchCheckBox.IsChecked) { regex = new Regex("^(" + tempSearchText + ")", RegexOptions.IgnoreCase); } else { regex = new Regex("^(" + tempSearchText + ")", RegexOptions.None); } } else if (this.SearchType == SearchType.EndsWith) { if (!(bool)CaseSensitiveSearchCheckBox.IsChecked) { regex = new Regex("(" + tempSearchText + ")$", RegexOptions.IgnoreCase); } else { regex = new Regex("(" + tempSearchText + ")$", RegexOptions.None); } } else { if (!(bool)CaseSensitiveSearchCheckBox.IsChecked) { regex = new Regex("(" + tempSearchText + ")", RegexOptions.IgnoreCase); } else { regex = new Regex("(" + tempSearchText + ")", RegexOptions.None); } } } var textBlock = GetEditableTextBlock(item); string[] substrings = { textBlock.Text }; //get all the words from the 'content' if (regex != null) { substrings = regex.Split(textBlock.Text.ToString()); } textBlock.Inlines.Clear(); foreach (var item1 in substrings) { if (regex != null && regex.Match(item1).Success) { //create a 'Run' and add it to the TextBlock Run run = new Run(item1); if (!issearchhighlightbrush) { run.Background = SearchBrush; } else { run.Background = SearchHighLightBrush; } textBlock.Inlines.Add(run); } else { textBlock.Inlines.Add(item1); } } if (substrings.Count() > 1 && !SearchedItems.Contains(item)) { SearchedItems.Add(item); } }
public void DragStart(object sender, DragTreeViewItemAdvEventArgs e) { drag = (sender as TreeViewAdv).SelectedContainer; }
private async void Window_Loaded(object sender, RoutedEventArgs e) { try { CancellationTokenSource source = new CancellationTokenSource(); CancellationToken token = source.Token; sfBusyIndicator.IsBusy = true; EditControl1.IsEnabled = false; //var slowTask = Task<ObservableCollection<CustomIntelliSenseItem>>.Factory.StartNew(() => SlowDude(source.Token), source.Token); var slowTask2 = Task <DataTable> .Factory.StartNew(() => LoadTables(source.Token), source.Token); //await slowTask; await slowTask2; //if (((ObservableCollection<CustomIntelliSenseItem>)slowTask.Result).Count > 0) //{ // EditControl1.IntellisenseCustomItemsSource = ((ObservableCollection<CustomIntelliSenseItem>)slowTask.Result); //} if (((DataTable)slowTask2.Result).Rows.Count > 0) { foreach (DataRow item in ((DataTable)slowTask2.Result).Rows) { TreeViewItemAdv itemMenu = new TreeViewItemAdv(); itemMenu.Header = item["tablas"].ToString(); string query = "select column_name as columnas from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='" + item["tablas"].ToString() + "' order by column_name "; DataTable DtColumnas = SiaWin.Func.SqlDT(query, "Columnas", idemp); ObservableCollection <CustomIntelliSenseItem> columnas = new ObservableCollection <CustomIntelliSenseItem>(); foreach (DataRow rowColum in DtColumnas.Rows) { itemMenu.Items.Add(new TreeViewItemAdv() { Header = rowColum["columnas"].ToString() }); } ItemMain.Items.Add(itemMenu); } // TreeViewItemAdv itemMenu = new TreeViewItemAdv(); // itemMenu.Header = row["tablas"].ToString(); // string query = "select column_name as columnas from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='" + row["tablas"].ToString() + "' order by column_name "; // DataTable DtColumnas = SiaWin.Func.SqlDT(query, "Columnas", idemp); // ObservableCollection<CustomIntelliSenseItem> columnas = new ObservableCollection<CustomIntelliSenseItem>(); // foreach (DataRow rowColum in DtColumnas.Rows) // { // itemMenu.Items.Add(new TreeViewItemAdv() { Header = rowColum["columnas"].ToString() }); // //columnas.Add(new CustomIntelliSenseItem() { Text = rowColum["columnas"].ToString() }); // } // ItemMain.Items.Add(itemMenu); } EditControl1.IsEnabled = true; this.sfBusyIndicator.IsBusy = false; } catch (Exception ex) { MessageBox.Show("Errror en el load" + ex); } }