2013-02-21 103 views
1

我正在學習如何編寫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://stackoverflow.com/q/4344584/299327 – 2013-02-21 21:33:21

+0

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

回答

0

因爲有問題的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