void newNode_ConnectionStateChanged(object sender, NodeConnection.ConnectionStates newState)
 {
     if (NodeCollectionChanged != null)
     {
         EventHelper.RaiseEventOnUIThread(NodeCollectionChanged, new object[] { this, null });
     }
 }
        void newNode_ConnectionStateChanged(object sender, NodeConnection.ConnectionStates e)
        {
            NodeConnection node = ((NodeConnection)sender);

            if (node.ConnectionState != NodeConnection.ConnectionStates.Connected)
            {
                return;
            }

            node.ConnectionStateChanged -= newNode_ConnectionStateChanged;

            unidentifiedNodes.Remove(node);
            validNodes.Add(node);

            OnNodeConnectionDetected(node);
        }