/// <summary> /// 更新选中操作 /// </summary> void UpdateSelectNodeOperate(Node select) { if (select != null) { bool is_ctrl_click = Event.current.control; bool is_shift_click = Event.current.shift; //选中操作 if (is_ctrl_click) { ToggleSelectNode(select); if (last_click_node_ == null || select.Index < last_click_node_.Index) { last_click_node_ = select; } } else if (is_shift_click) { ClearSelectedNodes(); if (Group != null) { int begin = 0; int end = 0; if (last_click_node_.Index < select.Index) { begin = last_click_node_.Index; end = select.Index; } else { begin = select.Index; end = last_click_node_.Index; } var list = Group.GetRange(begin, end); SelectMultiNode(list); } } else { //消除之前选中的数据的焦点 ClearSelectedNodes(); SelectNode(select); last_click_node_ = select; } } }