Treefrog.Windows.PropertyPane.SyncPropertyListHandler C# (CSharp) Method

SyncPropertyListHandler() private method

private SyncPropertyListHandler ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void SyncPropertyListHandler(object sender, EventArgs e)
        {
            if (_propertyList.Editing) {
                return;
            }

            _propertyList.Items.Clear();

            foreach (Property prop in _controller.PredefinedProperties) {
                ListViewItem item = new ListViewItem();
                item.SubItems.Add(new ListViewSubItemEx(item, prop.Name) { ReadOnly = true });
                item.SubItems.Add(prop.ToString());
                item.Group = _groupPredefined;
                if (_controller.SelectedProperty != null && _controller.SelectedProperty == prop) {
                    item.Selected = true;
                }

                _propertyList.Items.Add(item);
            }

            ListViewItem editItem = null;

            foreach (Property prop in _controller.InheritedProperties) {
                ListViewItem item = new ListViewItem(new string[] { "", prop.Name, prop.ToString() });
                item.Group = _groupInherited;
                if (_controller.SelectedProperty != null && _controller.SelectedProperty == prop) {
                    item.Selected = true;

                    if (_inAdd) {
                        editItem = item;
                    }
                }

                _propertyList.Items.Add(item);
            }

            foreach (Property prop in _controller.CustomProperties) {
                ListViewItem item = new ListViewItem(new string[] { "", prop.Name, prop.ToString() });
                item.Group = _groupCustom;
                if (_controller.SelectedProperty != null && _controller.SelectedProperty == prop) {
                    item.Selected = true;

                    if (_inAdd) {
                        editItem = item;
                    }
                }

                _propertyList.Items.Add(item);
            }

            if (editItem != null) {
                BeginEditing(editItem, 1);
            }
        }