這是一個簡單的工作示例。
UserControl XAML只包含一個雙向綁定文本框。相對源東西是更詳細的比你需要,你可以有高於設定的數據上下文,但它只是要清楚其中的屬性來從:
<TextBox x:Name="ucTextBox"
Text="{Binding Path=UcText,
RelativeSource={RelativeSource AncestorType={x:Type local:UserControl1}},
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
用戶控件代碼隱藏聲明要麼依賴財產或者,如下所示,一個普通的屬性實現INotifyPropertyChanged的:
private string _ucText;
public string UcText
{
get { return _ucText; }
set
{
_ucText = value;
OnPropertyChanged("UcText");
}
}
的主窗口XAML然後將它自己的文本塊,從文本框的用戶控件中的文本屬性,比如:
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=UcText, ElementName=uc1}"/>
<local:UserControl1 x:Name="uc1" />
</StackPanel>
MainWindow代碼隱藏不需要額外的東西。
結果是一個文本框(在用戶控件中),當你在其中鍵入內容時,它將更新主窗口上的文本塊。