The above code has couple of issues. First, the containers like Window, Page, UserControl can accept only one child as direct child. That mean, if you want more that one element or items to be added to the Window, then you need to use a containers like Grid, StackPanel, Canvas which can hold more than one child. Since your code has both CustomerViewModel Instance and Grid are added as direct child to Window.
Second issue is, when you want to add Custom CLR object into XAML, you may need to use properties like DataContext or Resources which can hold CLR objects or classes that are derived from Binding / BindingBase.
If you have added your CustomerViewModel under DataContext property of the Window class using Property Element Syntax, you do not even need to use Source Property in TextBox Binding. It will automatically take the source from DataContext, because DataContext is an “Inherited Property” which will be available for all of its children.
<Window x:Class="DataBinding.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:DataBinding"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Window.DataContext>
<vm:EmployeeVM FirstName="Name1"/>
</Window.DataContext>
<Grid>
<TextBox Text="{Binding FirstName}" Height="23" Width="239"/>
</Grid>
</Window>