private void Initialize(MasterController masterController) { if (initialized) { return; } this.masterController = masterController; minSize = WindowSize; titleContent = new GUIContent(masterController.GetDisplayMasterName()); lifetimeDisposable = new LifetimeDisposable(); toolbarView = new ToolbarView(); toolbarView.Initialize(masterController); recordView = new RecordView(); recordView.Initialize(masterController); toolbarView.OnChangeSearchTextAsObservable() .Subscribe(x => { var records = GetDisplayRecords(); recordView.SetRecords(records); }) .AddTo(lifetimeDisposable.Disposable); toolbarView.OnResetRecordsAsObservable() .Subscribe(_ => recordView.RefreshRowHeights()) .AddTo(lifetimeDisposable.Disposable); initialized = true; }