2つのテンプレートを持つカスタムUserControlがあります。最初のテンプレートのコントロールから2番目のテンプレートのコントロールにバインドする必要があります。
ターゲットコントロールに名前を付けようとすると、次のようになります。
要素'RichTextBox'にName属性値'TheRichTextBox'を設定できません。'RichTextBox'は、別のスコープで定義されたときにすでに名前が登録されている要素'CustomElement'のスコープの下にあります。
したがって、相対バインディングを使用する必要がありますが、私の唯一のオプションは、ビジュアルツリーを上または下に表示することです。
このシナリオに適した解決策はありますか?
<local:CustomElement Title="CustomElementInstance" >
<local:CustomElement.SubHeaderContainer>
<StackPanel Orientation="Horizontal">
<ToggleButton
IsChecked="{Binding Path=KladblokEditingState}"
Command="{Binding Path=UpdateKladblokCommand}" CommandParameter="{Binding TheRichTextBox????, Path=Document}"/>
</StackPanel>
</local:CustomElement.SubHeaderContainer >
<RichTextBox IsReadOnly="{Binding Path=KladblokEditingNotState}"
local:RichTextBoxHelper.DocumentXaml="{Binding Path=Kladblok.KladblokDocument}" />
</local:CustomElement>