It looks like your best bet would probably be to use the WaitAliasChild method, and the Exists property, along with a RefreshMappingInfo call. It ends up looking like this:
var w = Aliases.mySoftware.myForm.WaitAliasChild("myControl", 10000);
if (!w.Exists) mySoftware.RefreshMappingInfo;
So, in the case of your code, it would probably be something like:
var w = Aliases.M3_AKShell.frmMainVsd.tableLayoutPanel1.
dockPanel.DockWindow.DockPane.Holder.AP.tabAP.
tpVendor.tscVendor.ToolStripContentPanel.tlpVendor.
pnlVendorGrids.WaitAliasChild("dgvVendorDetails", 10000)
/*If statement is optional - if you're having trouble getting name mapping to work, include it, otherwise disregard*/
if (!w.Exists) mySoftware.RefreshMappingInfo;
Good luck!