public void Init(Windows.Reactive.IReactive reactive) { treeViewController = reactive.CreateTreeViewController(treeView); treeViewController.OnExpand = item => viewModel.OnItemExpand((IViewItem)item); treeViewController.OnCollapse = item => viewModel.OnItemCollapse((IViewItem)item); treeViewController.OnSelect = items => viewModel.OnSelectionChange(items.OfType <IViewItem>().ToArray()); treeViewController.OnUpdateNode = (treeNode, item, oldItem) => { var vi = (IViewItem)item; var oldvi = (IViewItem)oldItem; updateLocked = true; if (vi.Checked != oldvi?.Checked) { treeNode.Checked = vi.Checked == true; } if (vi.ToString() != oldvi?.ToString()) { treeNode.Text = vi.ToString(); } if (vi.Color != oldvi?.Color) { treeNode.BackColor = Drawing.PrimitivesExtensions.ToSystemDrawingObject(vi.Color.value); } updateLocked = false; }; }
public StateInspectorForm(Windows.Reactive.IReactive reactive) { InitializeComponent(); this.reactive = reactive; this.treeViewController = reactive.CreateTreeViewController <IObjectsTreeNode>(objectsTreeView); this.objectsTreeView.Indent = UIUtils.Dpi.Scale(20, 120); this.splitContainer1.SplitterWidth = Math.Max(4, UIUtils.Dpi.Scale(4, 120)); this.splitContainer3.SplitterDistance = UIUtils.Dpi.Scale(260, 120); this.ClientSize = new System.Drawing.Size(UIUtils.Dpi.Scale(800, 120), UIUtils.Dpi.Scale(500, 120)); this.treeViewController.OnExpand = node => viewModel.OnExpandNode(node); this.treeViewController.OnCollapse = node => viewModel.OnCollapseNode(node); this.treeViewController.OnSelect = nodes => viewModel.OnSelect(nodes); selectedObjectStateHistoryControl.Header.ResizingStarted += (s, e) => splitContainer3.BeginSplitting(); }