访问用户控制代码中的绑定上下文

Accessing bound context in user controls code behind

问题很像 this question- 只是没有解决我的问题

那么如何从后面的控件代码访问通过 Parent 中的 Xaml 绑定的 WPF 用户控件上的 属性?

PS:绑定传入的TowerBase模型的Properties的其他控件正在绑定。 (我只是无法访问后面代码中传入的模型)。

UserControl: x 和 y 为空,我不明白为什么

public partial class TowerControl : UserControl
{
    public TowerBase model = new TowerBase(); //Trying to set this model

    public TowerControl()
    {
        InitializeComponent();
        var x = ((TowerBase)this.DataContext); //Or Extract from binding
        var y = model;
    }
    ...

来自parent的xaml:

    ...
    <controls:TowerControl Grid.Row="1" Grid.Column="0" x:Name="Tower" DataContext="{Binding Tower}" />
    ...

Parent 型号:

    ...
    public TowerBase Tower { get; set; }
    ...

那是因为 UserControl's DataContext 在构造函数中时不会被设置。收听用户控件的 Loaded 事件,在处理程序中您将获得 DataContext

<UserControl Loaded="UserControl_Loaded">

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
    var x = this.DataContext;
}