WPFWindow
があり、どこかListView
にバインドする場所がありList<string>
ます。
今、どこかで私ListView
があるTextBox
とContent
プロパティがに設定されています{Binding}
。
しかし、これは省略形です。自分自身にバインドするための完全なバインディングを作成するにはどうすればよいですか?
{Binding Path=Self}
動作しません。動作しません{Binding Self}
(後者は前者のショートカットです)。
WPFWindow
があり、どこかListView
にバインドする場所がありList<string>
ます。
今、どこかで私ListView
があるTextBox
とContent
プロパティがに設定されています{Binding}
。
しかし、これは省略形です。自分自身にバインドするための完全なバインディングを作成するにはどうすればよいですか?
{Binding Path=Self}
動作しません。動作しません{Binding Self}
(後者は前者のショートカットです)。
回答:
簡単な答え:「それ自体にバインドする」ためのショートカットで{Binding}
はありません(RelativeSource.Selfの意味で)。むしろ、現在のソースにバインドする、{Binding}
と同等 {Binding Path=.}
です。
詳述すると、バインディングにはソースとパスがあります。たとえば、「それ自体へのバインド」を行うことができます。
<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" />
ただし、これによりソースがコントロール自体に設定されるため、x
(x
現在のデータコンテキストのプロパティではなく)UIコントロールのプロパティにアクセスしようとします。私があなたの質問をどのように理解したかから、これはあなたが望むものではありません。特に、それは何をするかではありません{Binding}
:{Binding}
ソースをそのまま(通常DataContext
はいくつかの親要素の)に保ち、ソース自体にバインドします(と同等Path=.
)。
CommandParameter="{Binding ElementName=MyDataGrid, Path=SelectedItems}"
、SelectedItemsがバインドされたICommandに渡されるDataGridがあります。ただし、null
ContextMenuを介してアクセスした場合は渡されます。私が試したCommandParameter=
"{selectedItemsのバインディング}",
と` "{selectedItemsの=、のElementName = MyDataGridパスのバインド}" "{Binding RelativeSource={RelativeSource Self}, Path=SelectedItems}"
。