示例#1
0
        protected override void SelectionChanged(IList <int> selectedIds)
        {
            int               id            = selectedIds.Count > 0 ? selectedIds[0] : -1;
            TreeViewItem      item          = FindItem(id, rootItem);
            ShipTypeGroupItem typeGroupItem = item as ShipTypeGroupItem;
            ShipTypeItem      shipItem      = item as ShipTypeItem;

            selectionChanged?.Invoke(new ShipTreeViewSelection(typeGroupItem?.shipTypeGroup, shipItem?.shipType));
        }
示例#2
0
 private void OnShipTypeDrop(ShipType shipType, TreeViewItem droppedOn, int index)
 {
     if (droppedOn is ShipTypeItem)
     {
         ShipTypeItem dropShipItem = (ShipTypeItem)droppedOn;
         //setShipTypeShipGroup?.Invoke(shipType, dropShipItem.shipType.shipGroupId, index);
     }
     else if (droppedOn is ShipTypeGroupItem)
     {
         //setShipTypeShipGroup?.Invoke(shipType, ((ShipTypeGroupItem)droppedOn).shipTypeGroup.id, index);
     }
 }
示例#3
0
        protected override DragAndDropVisualMode HandleDragAndDrop(DragAndDropArgs args)
        {
            if (args.performDrop)
            {
                TreeViewItem droppedOn   = args.parentItem;
                TreeViewItem droppedItem = FindItem((int)DragAndDrop.GetGenericData("ShipTreeView"), rootItem);

                ShipTypeItem item = droppedItem as ShipTypeItem;
                if (item != null)
                {
                    OnShipTypeDrop(item.shipType, droppedOn, args.insertAtIndex);
                }
                else if (droppedItem is ShipTypeGroupItem)
                {
                    GameDatabase.ActiveInstance.SetAssetIndex(((ShipTypeGroupItem)droppedItem).shipTypeGroup, args.insertAtIndex);
                }
            }
            return(DragAndDropVisualMode.Move);
        }