Wie werden DataContext
in UserControls normalerweise gesetzt? Wenn ich so etwas wie die unten in meinem Usercontrol tun,DataContext in UserControls
DataContext = this
In meinem Fenster oder andere Steuerelemente, wenn ich die Kontrolle mit einer Bindung verwendet werden soll, werde ich eine RelativeSource
haben müssen, um das Fenster/Usercontrol
<local:UserControl1 TextContent="{Binding Text1, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" />
Ist die Art und Weise Kontrollen innerhalb Usercontrols zu binden: set Verwendung RelativeSource
in Benutzersteuerelementen statt DataContext
?
<UserControl x:Class="SetCurrentValueTest.UserControl1" ...>
<TextBox Text="{Binding Path=TextContent, RelativeSource={RelativeSource AncestorType={x:Type local:UserControl1}}}" />
</UserControl>
Das zweite Beispiel macht nichts anderes als {Binding TextContent}, außer Sie haben den DataContext auf etwas anderes zwischen dem UserControl und dem TextBox festgelegt; Andernfalls erbt der TextBlock den DataContext. Und das Angeben von UserControl oder UserControl1 als AncestorType wird nur einen Unterschied machen, wenn ein anderes UserControl eines anderen Typs in dem UserControl1 enthalten ist und das TextBox enthält. –