Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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);
        }