Tip - Never use type equality because that does not support derived classes:
if (item.GetType() == typeof(Image)) //this is bad, mkay.
Instead use the following which does support derived classes:
if (item is Image)
The Microsoft prefered pattern (when you actually need the cast object) is:
var itemAsType = item as Image;
if (itemAsType != null)
That way, you will only have to typecast once.