4

C# コンパイラと Silverlight 2 のドキュメントによると、Silverlight は DataTemplate クラスの FindName メソッドを提供していません。ContentPresenter 内にある Border を見つけたいです。SilverLight 2 での最善の方法は何ですか?

4

2 に答える 2

3

境界線が ControlTemplate ではなく DataTemplate 内にある場合、過去にそれを行うことができた唯一の方法は、必要な要素を見つけるために VisualTreeHelper を使用することでした。

于 2008-11-13T20:37:44.600 に答える
0

シナリオを完全に理解しているわけではありませんが、DataTemplate について言及しているので、テンプレートを使用していると思います。

テンプレートを使用している場合は、ボーダーに名前 (x:Name="border") を付けてから、OnApplyTemplate メソッドをオーバーライドします。そのメソッドでは、GetTemplateChild を使用して、使用した名前を渡します。これにより、国境への参照が返されます。

テンプレートを使用しておらず、ContentPresenter への参照がある場合は、子の Content プロパティを参照する再帰関数を記述できます。それが境界線でない場合は、コンテンツに対して同じ関数を呼び出します。

于 2008-11-13T20:21:49.903 に答える