如何从ToogleSwitch中查找子控件

时间:2013-04-20 14:09:51

标签: windows-phone-7 windows-phone-8

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

我尝试了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>

1 个答案:

答案 0 :(得分:-1)

你面临的问题是名称范围 - 命名它在不同的范围内。找到它的一种方法是使用Linq-to-VisualTree ::

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