Просто оставьте строку, в которой вы создаете новую виртуальную машину, и перезапишите DataContext
:
this.DataContext = new ButtonViewModel();
Тогда DataContext
будет унаследовано (это будет элемент в коллекции, ButtonVM).
(В качестве примечания вы, кажется, пытаетесь одновременно использовать view-first и view-model-first, вам следует придерживаться одного. Также представление, вероятно, должно уже связываться со всеми соответствующими свойствамина view-модели, так что вам просто нужно создать представление и все)