WPF Window
があり、どこかにList<string>
をバインドするListView
があります。
今、私のListView
のどこかにTextBox
があり、Content
プロパティが{Binding}
に設定されています。
しかし、これは速記です。自分自身にバインドするための完全なバインディングを作成するにはどうすればよいですか?
{Binding Path=Self}
は機能せず、{Binding Self}
も機能しません(後者は前者のショートカットです)。
短い答え:{Binding}
はnot「自身へのバインド」のショートカットです( RelativeSource.Self の意味)。むしろ、{Binding}
と同等{Binding Path=.}
、現在のソースにバインドします。
詳しく説明する:バインディングには、sourceとpathがあります。たとえば、次のものを使用して、「自分自身にバインド」することができます。
<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" />
ただし、これはsourceをコントロール自体に設定するため、UIコントロールのプロパティx
にアクセスしようとします(現在のプロパティx
ではなく)データコンテキスト)。あなたの質問をどのように理解したかから、これはあなたが望むものではありません。特に、それは{Binding}
が行うことではありません:{Binding}
はソースをそのまま保持し(通常、親要素のDataContext
)、ソース自体にバインドします(Path=.
と同等)。