Вы не можете получить доступ к txtF и txtL по имени, поскольку текстовые поля внутри UserControl находятся в другой области имен. Проверьте эту ссылку для получения дополнительной информации об областях именования WPF.
Самый простой способ сделать это, вероятно, состоит в том, чтобы добавить свойство TextCombined в ваш usercontrol, установить его, когда один из TextBoxes изменит свой текст, и привязать его к вашему окну:
Код позади вашего UserControl:
public partial class UserControl1 : UserControl
{
public static readonly DependencyProperty TextCombinedProperty =
DependencyProperty.Register("TextCombined", typeof(string),
typeof(UserControl1), new PropertyMetadata(String.Empty));
public string TextCombined
{
get { return (string)GetValue(TextCombinedProperty); }
set { SetValue(TextCombinedProperty, value); }
}
public UserControl1()
{
InitializeComponent();
txtF.TextChanged += OnTextFieldTextChanged;
txtL.TextChanged += OnTextFieldTextChanged;
}
private void OnTextFieldTextChanged(object _, TextChangedEventArgs __)
{
SetCurrentValue(TextCombinedProperty, $"{txtF.Text} {txtL.Text}");
}
}
Окно XAML:
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox Width="150"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="{Binding ElementName=SomeUC, Path=TextCombined}" />
<local:UserControl1 x:Name="SomeUC"
Grid.Row="1"
HorizontalAlignment="Center"
VerticalAlignment="Top"/>
</Grid>
UserControl XAML менять не нужно. Надеюсь, что это работает для вас.