我正在使用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.
请告诉我你的想法,我可以开始学习......
答案 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";
}
}