The way to deal with urban trash is to pay people to clean it up. Sure you can hope residents and visitors litter less, but ultimately there's going to be some (and not just because people are assholes, because often trash/recycling blows around on trash day). Setting up separate business improvement districts is how some areas have dealt with the city not providing this service, but of course that adds yet another layer of administration/collections/enforcement which, you know, costs more money.
Want clean streets? Pay people to clean them. It really isn't complicated.