public GameObjTreeViewItem(GameObject g) { gameObject = g; gameObjectName = g.GetName(); Header = new GameObjectViewItem(); (Header as GameObjectViewItem).DataContext = g; Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() => { this.Selected += GameObjTreeViewItem_Selected; this.Unselected += GameObjTreeViewItem_Unselected; })); EngineManagerViewModel.instance.SelectedGameObjects.CollectionChanged += SelectedGameObjects_CollectionChanged; }