Лучше присоединить ViewModel к DataContext вашего UserControl, а в usercontrol вам не нужно свойство ViewModel, вы можете просто привязать неявный Datacontext, потому что это будет вы ViewModel
Дополнительные примечания:
Чтобы включить привязку данных в конструкторе, следуйте приведенному ниже примеру:
<UserControl
<!--
all the other declaration needed are here
-->
xmlns:local="clr-namespace:NotePrototype"
d:DataContext="{DynamicResource ViewModel}"
>
<UserControl.Resources>
<local:NoteViewModel x:Key="ViewModel" d:IsDataSource="True" />
</UserControl.Resources>
<!--
put your content here
-->
</UserControl>
Отредактировал ваш пример для ItemsControl:
<ItemsControl x:Name="itemsControl1" Grid.Row="1" ItemsSource="{Binding Notes}" >
<ItemsControl.Template>
<ControlTemplate TargetType="ItemsControl">
<ScrollViewer>
<ItemsPresenter/>
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<uc:NoteControl DataContext="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>