I Came up with a solution that requires quite a bit of extension on top of the NGUI classes, luckily most of them seem to be setup to allow this.
First i have my own base class
public class MyGrid : UIGrid
{
// Use this for initialization
protected override void Start()
{
base.Start();
}
// Update is called once per frame
protected override void Update ()
{
base.Update();
}
public virtual void CardDroppedIntoGrid(GameObject gObject)
{
}
}
and I have a few other grid types that inherit from this and override CardDroppedIntoGrid.
Then I have an extension for UIDragDropItem
public class MyDragDropItemSelection : UIDragDropItem
{
protected override void OnDragDropRelease (GameObject surface)
{
base.OnDragDropRelease (surface);
//message grid
WCGrid grid =(WCGrid)mGrid;
grid.CardDroppedIntoGrid(gameObject);
}
}
and that does the trick