2015-06-23 74 views
0

我有一個UserControl定位在MainWindow內。 UserControl運行查詢並填充其中的某些TextBlocks。我也想從相同的返回數據中填充MainWindow中的TextBlock。將usercontrol的datacontext綁定到主窗口

如何將MainWindow數據綁定到UserControl?我試過這個:

<MainWindow DataContext="{Binding Path=DataContext, ElementName=UserControlName}"> 

任何幫助,將不勝感激。謝謝!

回答

0

這是一個簡單的工作示例。

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代碼隱藏不需要額外的東西。

結果是一個文本框(在用戶控件中),當你在其中鍵入內容時,它將更新主窗口上的文本塊。

相關問題