Ich frage mich nur, ob es einen Unterschied macht, wenn ich den Unterpfad zu einer Eigenschaft in jeder Bindung wiederholen oder wenn ich den DataContext binden und nur die relativen Pfade in den Bindungen angeben.
例を挙げます:
Absolute Pfade:
<UserControl x:Name="uc"/>
<StackPanel>
<TextBox Text="{Binding ViewModel.Prop1, ElementName=uc}" />
<TextBox Text="{Binding ViewModel.Prop2, ElementName=uc}" />
</StackPanel>
</UserControl/>
Relative Pfade:
<UserControl x:Name="uc"/>
<StackPanel DataContext="{Binding ViewModel, ElementName=uc}">
<TextBox Text="{Binding Prop1}" />
<TextBox Text="{Binding Prop2}" />
</StackPanel>
</UserControl/>
Ich weiß, dass beide die gleichen Eigenschaften binden, aber ich bin daran interessiert, was wirklich hinter den Kulissen passiert, weil dies vielleicht die Leistung in Situationen beeinflussen kann, in denen es viel mehr als 2 Bindungen gibt. Führt die Variante mit absoluten Pfaden zu mehr "Event-Traffic", weil jede der Text-Bindings die ViewModel-Eigenschaft und ihre spezifische Eigenschaft beobachtet? Oder wird es genau dasselbe sein? Ich könnte mir vorstellen, dass ein BindingManager alle Bindungspfade auflöst, so dass beide Varianten in genau der gleichen IL landen.
Wenn die Struktur der Bindungshierarchie einen Einfluss hat: Hat die Verwendung des "langsameren" Ansatzes mit vollständigen Pfaden in jeder Bindung irgendwelche positiven Auswirkungen (abgesehen von den Präferenzen für den Codestil)?