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

あなたが直面している問題はネームスコープです - その名前は異なるスコープ内にあります。それを見つける 1 つの方法は、Linq-to-VisualTree ::を使用することです。

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