Если ваш исходный класс Customer не поддерживает привязку данных, вам придется создать класс viewmodel и реплицировать свойства класса Customer.
Если, однако, ваш класс Customer уже реализует поддержку привязки данных (он либо имеет свойства зависимости, либо реализует INotifyPropertyChanged), то нет фундаментальной причины, по которой вы не можете напрямую связываться со свойствами класса Customer.
Конечно, у вас могут быть другие соображения - вы можете захотеть, чтобы ваша view-модель выполняла определенные операции в ответ на изменения свойств, или вы не хотите, чтобы объекты Customer были изменены напрямую. В этом случае вы все равно захотите обернуть класс Customer.
Кроме того, вы можете захотеть поддерживать проверку данных через интерфейс IDataErrorInfo, и в этом случае, если ваш клиентский класс не реализует этот интерфейс, вам также, вероятно, придется обернуть его.