通过代码更改自定义控件文本块的值

问题描述:

我正在学习如何编写Windows 8应用程序,但找不到任何我的问题的答案。通过代码更改自定义控件文本块的值

我创造,我感到点击一个按钮与添加自定义控制:

onclick() { 
    card currentcard = new card(); 
    ... 
    ... 
    hand.Children.add(currentCard); 
} 

在page.cs

目前卡控制已经看起来像这样含有TextBlock Generic.xaml信息

<Style TargetType="local:tile"> 
    <Setter Property="VerticalAlignment" Value="Center"/> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="local:tile"> 
     <Border 
      Background="{TemplateBinding Background}" 
      BorderBrush="{TemplateBinding BorderBrush}" 
      BorderThickness="{TemplateBinding BorderThickness}"> 
      <TextBlock x:Name="Label"/> // <----------------------- this textblock 
     </Border> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

我能做些什么,以page.cs或许card.cs得到TextBlock命名标签的/设定值?

对不起,如果这是基本的或在某个地方回答之前,我做了搜索,但我没有找到我的答案!

+0

如果要在代码中设置文本块的值,则需要使用wpf数据绑定。有点像这个问题http://*.com/q/4344584/299327 – 2013-02-21 21:33:21

+0

谢谢瑞安我会研究一下。 – user2097125 2013-02-21 21:45:03

因为有问题的TextBlock是叫瓷砖的自定义类型ControlTemplate的一部分,这是你最好的选择将是一个DependencyProperty添加到您的瓷砖类型和使用TemplateBindingTextBlockText属性绑定到这个新的价值DependencyProperty

您无法轻易地从外部触及ControlTemplate以修改该模板的一部分值。

This answer提供了使用DependencyProperty并将其绑定到ControlTemplate的一个示例,并且快速搜索可能会产生许多其他示例。

+0

哦,谢谢我会考虑这一点。对不起,如果我知道DependencyProperty我会查找它。谢谢你为我拉! – user2097125 2013-02-21 22:43:24

+0

很高兴帮助。 [Here](http://msdn.microsoft.com/en-us/library/ms752914.aspx)是关于DependencyProperties的MSDN文章。如果您觉得这回答您的问题,请将其标记为答案。 – 2013-02-21 23:04:23