簡単な質問です。LabeledValue
「ラベル」と「値」の文字列プロパティを持つカスタム コントロールを作成するとします。私が疑問に思っているのは、そのコントロールが 2 つのルート レベルのビジュアル (たとえば 2 つの TextBlocks) をビジュアル ツリーに出力できるかどうか、または親コントロールを共有する必要があるかどうかです。
このコントロールをグリッド上に論理的に配置する場合を考えてみましょう。Grid.Row がそれぞれ '0' と '1' に設定された事前構成済みの TextBlock タイプの 2 つの視覚的な子をグリッドに持たせたいと考えています。
// For this *LOGICAL* tree (i.e. what I type in XAML)...
<Grid>
<LabeledValue Label="FooText" Value="FooValue" Grid.Row="0" />
<LabeledValue Label="LaaText" Value="LaaValue" Grid.Row="1" />
</Grid>
// ...I want it to generate this *VISUAL* tree (XAML for hierarchical illustration only here)...
<Grid>
<TextBlock Text="FooText" Grid.Row="0" Grid.Column="0" />
<TextBlock Text="FooValue" Grid.Row="0" Grid.Column="1" />
<TextBlock Text="LaaText" Grid.Row="1" Grid.Column="0" />
<TextBlock Text="LaaValue" Grid.Row="1" Grid.Column="1" />
</Grid>
// ...and NOT this *VISUAL* tree. (XAML for hierarchical illustration only here)...
<Grid>
<LabeledValue>
<TextBlock Text="FooText" Grid.Row="0" Grid.Column="0" />
<TextBlock Text="FooValue" Grid.Row="0" Grid.Column="1" />
</LabeledValue>
<LabeledValue>
<TextBlock Text="LaaText" Grid.Row="1" Grid.Column="0" />
<TextBlock Text="LaaValue" Grid.Row="1" Grid.Column="1" />
</LabeledValue>
</Grid>
それが理にかなっていることを願っています。
注: これは、私たちが実際に行っていることを完全に単純化しすぎていますが、これに答えて達成できる場合は、何が必要かがわかります。