private void Initialize() { if (!_initialized) { if (Cache.FolderTree == null) { return; } if (_treeViewState == null) { _treeViewState = new FolderTreeViewState(); } bool firstInit = _multiColumnHeaderState == null; var headerState = FolderTreeView.CreateDefaultMultiColumnHeaderState(FolderTreeViewRect().width); if (MultiColumnHeaderState.CanOverwriteSerializedFields(_multiColumnHeaderState, headerState)) { MultiColumnHeaderState.OverwriteSerializedFields(_multiColumnHeaderState, headerState); } _multiColumnHeaderState = headerState; var multiColumnHeader = new FolderMultiColumnHeader(headerState); if (firstInit) { multiColumnHeader.ResizeToFit(); } var treeModel = new TreeModel <FolderTreeElement>(GetData()); _treeView = new FolderTreeView(_treeViewState, multiColumnHeader, treeModel); _treeViewState.View = _treeView; _treeViewState.Cache = Cache; _searchField = new SearchField(); _searchField.downOrUpArrowKeyPressed += _treeView.SetFocusAndEnsureSelectedItem; _initialized = true; } }