Qu'est-ce qu'un ViewModelLocator et quels sont ses avantages / inconvénients par rapport aux DataTemplates?