0

如何在 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>

4

1 回答 1

-1

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

var textBlock = tsMonthlyLimit.Descendants()
                              .OfType<TextBlock>()
                              .Single(i => i.Name=="tbMonthlyLimitData");
于 2013-04-21T06:52:51.803 回答