我可以从 UserControl 绑定到 DataTemplate 吗?

Can I Bind from UserControl to DataTemplate?

我想从 UserControl 绑定到 DataTemplate。

但是我得到错误

Cannot find source for binding with reference 'ElementName=LoginTextBox'. BindingExpression:(no path); DataItem=null; target element is 'Grid' (Name=''); target property is 'FocusedElement' (type 'IInputElement')

我的代码

<UserControl>
    <UserControl.Resources>
        
        <DataTemplate DataType="{x:Type models:LocalAuthenticationMethod}">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="72"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" VerticalAlignment="Center"
                       Text="{uiCommon:LocalizationBinding ResourceName=Login}"
                       FontSize="{DynamicResource LoginWindowPropertiesFontSize}"/>
                
                <!-- bind to here -->
                <ComboBox x:Name="LoginTextBox"
                      Grid.Column="1"
                      Height="24"
                      Text="{Binding ElementName=Root, Path=DataContext.Login, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True}"
                      ItemsSource="{Binding ElementName=Root, Path=DataContext.AvailableUsers, Mode=OneWay}"
                      IsEditable="True"
                      behavior:FocusAdvancement.AdvancesByEnterKey="True"
                      FontSize="{DynamicResource LoginWindowPropertiesFontSize}">
                    <b:Interaction.Behaviors>
                        <behavior:SelectTextOnGotFocusBehavior/>
                        <behavior:SelectTextOnTargetUpdatedBehavior/>
                    </b:Interaction.Behaviors>
                </ComboBox>
            </Grid>
        </DataTemplate>
    </UserControl.Resources>
    <Grid x:Name="Root">

        <!-- how to bind here? -->
        <Grid FocusManager.FocusedElement="{Binding ElementName=LoginTextBox}"> 
            <ContentControl>
                <ContentPresenter Content="{Binding SelectedAuthenticationMethod, Mode=OneWay}"/>
            </ContentControl>
        </Grid>
    </Grid>
</UserControl>

我想将 FocusedElement 绑定到 ElementName=LoginTextBox。我该怎么做?有可能吗?

Is it possible at all?

否,因为名称“LoginTextBox”仅在定义了 ComboBoxDataTemplate 中可用。

Grid 驻留在另一个 XAML namescope 中,它对定义 LocalAuthenticationMethod 对象的视觉外观的各个元素一无所知。