Index: src/Common/DelftTools.Controls.Swf/TreeViewControls/TreeView.cs =================================================================== diff -u -rf1713196b96f96ed637286a1d8c6236a133268ae -r2ace0d3a03d5bf9e372a9c1032f996488fe2c4eb --- src/Common/DelftTools.Controls.Swf/TreeViewControls/TreeView.cs (.../TreeView.cs) (revision f1713196b96f96ed637286a1d8c6236a133268ae) +++ src/Common/DelftTools.Controls.Swf/TreeViewControls/TreeView.cs (.../TreeView.cs) (revision 2ace0d3a03d5bf9e372a9c1032f996488fe2c4eb) @@ -213,6 +213,16 @@ return controller.CanRenameNode(SelectedNode); } + public void EnableDataEventListeners() + { + controller.EnableDataEventListeners(); + } + + public void DisableDataEventListeners() + { + controller.DisableDataEventListeners(); + } + public void EnsureVisible(object item) { } public ITreeNodePresenter GetTreeViewNodePresenter([NotNull] object nodeData, ITreeNode node) @@ -401,6 +411,15 @@ controller.OnTreeViewHandleCreated(); } + protected override void OnHandleDestroyed(EventArgs e) + { + if (controller != null) + { + controller.OnTreeViewHandleDestroyed(); + } + base.OnHandleDestroyed(e); + } + /// /// Custom drawing. /// @@ -423,6 +442,8 @@ { if (disposing && controller != null) { + controller.OnTreeViewHandleDestroyed(); + controller.Dispose(); controller = null; } @@ -711,7 +732,9 @@ if (node.IsOnCheckBox(point)) { + DisableDataEventListeners(); node.Checked = !node.Checked; + EnableDataEventListeners(); } if (node.IsOnExpandButton(point))