private void TxtKeyword_Completed(object sender, EventArgs e) { var curKeyword = txtKeyword.Text.Trim(); if (curKeyword.Equals(oldKeyword, StringComparison.OrdinalIgnoreCase)) { return; } else { TheTreeView.Clear(); if (curKeyword.Equals("")) { TheTreeView.RootModels = rootModelItems; TheTreeView.FirstCreateUIElement(); oldKeyword = ""; return; } var search_result = new ObservableCollection <TreeNodeModel>(); var found = TreeViewEx.SearchModels(rootModelItems, curKeyword.ToUpper(), ref search_result); TheTreeView.RootModels = search_result; TheTreeView.FirstCreateUIElement(); oldKeyword = curKeyword; } }
private void initTree() { Stopwatch sw = new Stopwatch(); if (_IsLoaded) { return; } _IsLoaded = true; sw.Start(); /* * var assembly = typeof(MainPage).GetTypeInfo().Assembly; * var stream = assembly.GetManifestResourceStream("XamarinFormsTreeView.Resource.XamlItemGroups.xml"); * string xml; * using (var reader = new StreamReader(stream)) * { * xml = reader.ReadToEnd(); * } * sw.Stop(); * * Console.WriteLine("Performance test, Load xml: {0}ms", sw.ElapsedMilliseconds); * sw.Restart(); * * var xamlItemGroups = (XamlItemGroup)DeserialiseObject(xml, typeof(XamlItemGroup)); * sw.Stop(); * Console.WriteLine("Performance test, DeserialiseObject xml: {0}ms", sw.ElapsedMilliseconds); * * sw.Restart(); * * var rootNodes = ProcessXamlItemGroups(xamlItemGroups, true); * sw.Stop(); * Console.WriteLine("Performance test, ProcessXamlItemGroups: {0}ms", sw.ElapsedMilliseconds); * * sw.Restart(); * //foreach (var node in rootNodes) * //{ * // var xamlItemGroup = (XamlItemGroup)node.BindingContext; * //} * * ////TheTreeView.RootNodes = rootNodes; */ rootModelItems = new ObservableCollection <TreeNodeModel>(); for (int i = 0; i < 5; i++) { var subItem = new TreeNodeModel() { Title = string.Format("Lvel 1: {0}", i) }; for (int j = 0; j < 5; j++) { var subItem2 = new TreeNodeModel() { Title = string.Format("Lvel 2: {0}/{1}", i, j) }; subItem.SubItems.Add(subItem2); for (int k = 0; k < 5; k++) { var subItem3 = new TreeNodeModel() { Title = string.Format("Lvel 3: {0}/{1}/{2}", i, j, k) }; subItem2.SubItems.Add(subItem3); for (int m = 0; m < 5; m++) { var subItem4 = new TreeNodeModel() { Title = string.Format("Lvel 4: {0}/{1}/{2}/{3}", i, j, k, m) }; subItem3.SubItems.Add(subItem4); } } } rootModelItems.Add(subItem); } TheTreeView.RootModels = rootModelItems; TheTreeView.FirstCreateUIElement(); sw.Stop(); Console.WriteLine("Performance test, RootNodes assigned: {0}ms", sw.ElapsedMilliseconds); }