使用Caliburn.Micro绑定的UWP模板控件,如何?

时间:2017-08-02 08:01:10

标签: uwp caliburn.micro

我正在使用Calibrun.Micro制作TempleteControl。 为了简化问题,我只用2 x TextBlock cont。重新制作我的TempleteControl。

问题

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

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

现在,我的代码在&#34; .Set&#34;方法

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

有没有办法在TemplateControl UWP中使用Caliburn.Micro绑定?

Here is full project code in GitHub.

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

1 个答案:

答案 0 :(得分:1)

如果您希望自定义控件具有可绑定性和动画效果,则总是在自定义控件中使用依赖项属性。

您的Title_Text2应该像Title_Text一样定义。我之前没有使用 Caliburn.Micro ,但Set方法可能是他们在 ViewModel 中通知属性更改的方法。在控件内部,你不应该这样做。

更新

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

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

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