Hi,
the easiest way to communicate between 2 UserControls is Binding to properties in the same instance of ViewModel, like this:
Main window with UserControls and DataContext (ViewModel instance)
<Window x:Class="Window046"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1.WpfApp046"
mc:Ignorable="d"
Title="Window046" Height="450" Width="800">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<StackPanel>
<local:Window046UC1 Height="100"/>
<local:Window046UC2 Height="100"/>
</StackPanel>
</Window>
First UserControl with TextBox: