基本的に、私はここでの本当の違いが何であるかを理解していません:
TabItem の Microsoft コードは次を使用します。
<ContentPresenter ContentSource="Header" ... />
では、いつContent
プロパティを代わりに (またはそれに加えて)使用するのでしょContentSource
うか?
基本的に、私はここでの本当の違いが何であるかを理解していません:
TabItem の Microsoft コードは次を使用します。
<ContentPresenter ContentSource="Header" ... />
では、いつContent
プロパティを代わりに (またはそれに加えて)使用するのでしょContentSource
うか?
このプロパティは、ContentPresenterがテンプレートにある場合にのみ使用する必要があります。テンプレートにContentSourceが「Abc」に設定されたContentPresenterが含まれている場合、ContentPresenterのContent、ContentTemplate、およびContentTemplateSelectorプロパティは、それぞれAbc、AbcTemplate、およびAbcTemplateSelectorに自動的にエイリアスされます。.NETFrameworkバージョン3.5ServicePack 1以降、ContentSourceを "Abc"に設定すると、ContentStringFormatプロパティもAbcStringFormatにエイリアスされます。
このプロパティの2つの最も有用な値は、「Content」と「Header」です。
(MSDN)
ContentSource
どうやら便利のために一度により多くのプロパティを設定します。
実際には、宣言:
<ContentPresenter ContentSource="Header" />
以下の初期化を行います。
<ContentPresenter Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}" />
テンプレート化されたコントロールに依存関係プロパティが存在する場合にのみ、プロパティごとに個別にこれを行います。