3

wpf Window では、DataContext="{Binding RelativeSource={RelativeSource Self}}"たとえば UserControl にバインドできるように使用しますUserControl="{Binding ElementName=Information}"

DataContext 行を削除すると、ElementName へのバインドも機能します。
また、別の DataContext を設定すると、たとえばthis.DataContext = new MainViewModel();動作します。

DataContext を使用していない場合、ElementName を介したバインディングはどのように機能しますか?

4

1 に答える 1

4

を使用する場合ElementNameBinding.Source値はそれが参照するオブジェクトに暗黙的に設定されます。これは、を設定Bind せずDataContextにできる 1 つの方法です。MSDNのBinding.ElementName プロパティページから:

デフォルトでは、バインドは、DataContext プロパティによって指定されたデータ コンテキストを継承します (設定されている場合)。ただし、ElementName プロパティは、Binding のソースを明示的に設定し、継承されたデータ コンテキストをオーバーライドできる方法の 1 つです。

于 2013-10-28T16:46:30.680 に答える