具有 Caliburn.Micro 绑定的 UWP 模板控件,怎么样?

UWP Template Control with Caliburn.Micro Binding , How?

我正在用 Calibrun.Micro 制作 TempleteControl。 为了使问题更简单,我只使用 2 x TextBlock cont.

重新制作了我的 TempleteControl

问题

一个 TextBlock 绑定为 "TemplateBinding"。它工作正常。 我想对第二个 TextBlock 使用 Calibrun.Micro 绑定。但是不知道怎么写..

<TextBlock x:Name="PART_Title" Text="{TemplateBinding Title_Text}" TextAlignment="Center" />
<TextBlock x:Name="PART_Title2" Text="{Binding Title_Text2}" TextAlignment="Center" />

现在,我的代码在“.Set”方法处出错。

public string Title_Text2 {
        get { return _title_Text2; }
        set { this.Set(_title_Text2); }
}

有什么方法可以在 TemplateControl UWP 中使用 Caliburn.Micro 绑定吗?

Here is full project code in GitHub.

请给我你的想法,我可以开始学习...

你应该总是在自定义控件中使用依赖项属性,如果你希望它是可绑定的和可动画的。

您的 Title_Text2 应该像 Title_Text 一样定义。我之前没有使用过 Caliburn.MicroSet 方法可能是他们通知 属性 ViewModel[ 中的变化的方法=28=]。在控件内部,您不应该这样做。


更新

实际上你在代码中注释掉的几乎是正确的。您可以获得该 TextBlock 的引用并在内部更新其 Text

private TextBlock _titleTextBlock;
protected override void OnApplyTemplate()
{
    base.OnApplyTemplate();

    _titleTextBlock = GetTemplateChild(TitlePart2Name) as TextBlock;
    if (_titleTextBlock != null)
    {
        _titleTextBlock.Text = "ByeBye by GetTemplateChild";
    }
}