2013-04-20 21 views
0

如何在ToggleSwitch_Checked事件中找到放置在ToogleSwitch ContentTemplate內的控件?如何從ToogleSwitch找到子控件

我試過toogle.Switch.FindName(「NameOftControlToFindHere」)但它返回NULL。

這裏是XAMl標記,我試圖在ToggleSwitch_Checked事件中以編程方式查找tbMonthlyLimitData文本塊。

<toolkit:ToggleSwitch Header="Monthly Limit" Margin="0,10,0,0" Name="tsMonthlyLimit" Checked="ToggleSwitch_Checked"> 
         <toolkit:ToggleSwitch.ContentTemplate> 
          <DataTemplate> 
           <StackPanel Orientation="Horizontal" Name="ts"> 
            <TextBlock Text="{Binding}" Name="tbMonthlyLimit"/> 
            <TextBlock Text="Hello" Name="tbMonthlyLimitData"/> 
           </StackPanel> 
          </DataTemplate> 
         </toolkit:ToggleSwitch.ContentTemplate> 

+0

您是否嘗試過使用Blend? – 2013-04-20 14:34:35

+0

可能是這將有助於 http://stackoverflow.com/questions/11460533/referencing-a-dynamically-created-control/11471602#11471602 – Deeps 2013-04-22 11:52:40

回答

-1

你所面對的問題是名稱範圍 - 命名它是一個不同的範圍之內。找到它的一種方法是使用Linq-to-VisualTree ::

var textBlock = tsMonthlyLimit.Descendants() 
           .OfType<TextBlock>() 
           .Single(i => i.Name=="tbMonthlyLimitData"); 
+0

「Microsoft.Phone.Controls.ToggleSwitch」不包含一個定義爲'後代'和沒有擴展方法'後裔'接受類型'Microsoft.Phone.Controls.ToggleSwitch'的第一個參數可以找到(你是否缺少使用指令或程序集引用?) – NoobDeveloper 2013-04-29 13:26:51

相關問題