如何在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>
答案 0 :(得分:-1)
你面临的问题是名称范围 - 命名它在不同的范围内。找到它的一种方法是使用Linq-to-VisualTree ::
var textBlock = tsMonthlyLimit.Descendants()
.OfType<TextBlock>()
.Single(i => i.Name=="tbMonthlyLimitData");