пытаюсь выделить ноду при выделении объекта в вьюпорте. При первом запуске скрипта колбек не срабатывает и выделение ноды в списке не происходит. Но при последующих запусках скрипта все работает. не понимаю в чем проблема.
Код:
dotnet.loadAssembly ("C:\\CodersLabWindowsControlsTreeView.dll")
ObjListArr=#()
fn tvChildOfRootNodes nd selObj =
(
for i=0 to nd.nodes.count-1 do
( print "slect"
if selObj==nd.nodes.item[i].tag.value do (TreeViewRoll.TreeView.selectedNodes.Add TreeViewRoll.TreeView.nodes.item[i] )
)
)
fn CHandler =(
try(
obj=selection as array
print obj
for h=obj.count to 1 by -1 do ( if finditem ObjListArr obj[h]==0 do deleteItem obj h )
if obj.count > 0 then
(
if TreeViewRoll.TreeView.selectedNodes!=undefined do
for h=TreeViewRoll.TreeView.selectedNodes.count-1 to 0 by -1 do TreeViewRoll.TreeView.selectedNodes.remove TreeViewRoll.TreeView.selectedNodes.item[h]
print "test"
for i=1 to obj.count do
(tvChildOfRootNodes TreeViewRoll.TreeView obj[i] )
)
else
if TreeViewRoll.TreeView.selectedNodes!=undefined do
for h=TreeViewRoll.TreeView.selectedNodes.count-1 to 0 by -1 do TreeViewRoll.TreeView.selectedNodes.remove TreeViewRoll.TreeView.selectedNodes.item[h]
)
catch(print"error!!!!!!!")
)
rollout TreeViewRoll "MultiSelect" width:300 height:200
(
dotNetControl treeView "CodersLab.Windows.Controls.treeView" height:192 width:292 pos:[4,4]
on TreeViewRoll open do
(
ms = (dotnetclass "CodersLab.Windows.Controls.TreeViewSelectionMode")
treeView.SelectionMode = ms.MultiSelect
for obj in objects do
( callbacks.addScript #selectionSetChanged "CHandler()" id:#test
newNode = (dotNetObject "System.Windows.Forms.TreeNode" obj.name)
treeView.nodes.add newNode
newNode.tag = dotNetMXSValue obj
append ObjListArr obj
)
)
on TreeViewRoll close do
(
callbacks.removeScripts id:#test
)
)
createDialog TreeViewRoll