Выпуск
Достаточно просто. На самом деле UserControl
- это просто ContentControl
, поэтому у него есть свойство зависимости с именем Content
. Когда вы устанавливаете это свойство, вы устанавливаете все содержимое вашего ContentControl
. Свойство Content является значением по умолчанию (посмотрите на свойства по умолчанию для WPF на MSDN).
<UserControl x:Class="WpfApplication1.Editor" ...>
<!-- Here, you set the Content property (because it is
the default one) of the UserControl as a TextBox with
the text "Hey". -->
<TextBox Text="Hey" />
</UserControl>
Сравните выше и ниже коды:
<!-- Here, the Content property is explicitly set. -->
<local:Editor Content="Heya" />
В обоих случаях вы определяете свойство Content с другим содержимым ...
<ч />
Решение
Чтобы решить вашу проблему, определите пользовательский DependencyProperty
в Editor
с именем TextContent
, например, и сделайте следующее:
<UserControl x:Class="WpfApplication1.Editor" ...>
<TextBox Text="{Binding TextContent, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" />
</UserControl>
И
<local:Editor TextContent="Heya" />