private object GetItems(object p) { object result = p; if (result is DataReference) { var dref = ((DataReference) result).Dereference(); result = dref; } if (result is ISource) { result = ((ISource) result).GetItem(); } return result; }