ContentPropertyAttributeを使用してその子パネルの1つのChildrenプロパティを公開するSilverlightUserControlがあります。これにより、ページのパネルに子コントロールを追加できます。
<local:MyUserControl>
<TextBox Name="tbTest" />
</local:MyUserControl>
これは、ページの「tbTest」フィールドが存在することを除けば機能しますが、初期化されていません。よく調べてみると、InitializeComponentメソッドは(FindNameを使用して)TextBoxを見つけようとしますが、見つけられません(nullを返します)。
調査の結果、ネームスコープが問題であることがわかりました。UserControlには独自のネームスコープがあるため、ページのFindNameでは子を見つけることはできませんが、UserControlのFindNameメソッドでは見つけることができます。
子コントロールがInitializeComponentメソッドによって配置可能になるようにUserControlを変更するにはどうすればよいですか?標準のパネル(StackPanel、Gridなど)は問題がないように見えるので、解決策が必要ですか?
ありがとう