Pivot
ヘッダーの外観を (再) 定義する場合は、 DataTemplate型のPivot.HeaderTemplateプロパティを使用する必要があります(すべての子に影響します)。PivotItems
テンプレートではなく、各のヘッダーにバインドされるデータを含むオブジェクトであるPivotItem.Headerプロパティでは実行できません。DataTemplate
PivotItem
したがって、理論的には、コード (およびそのすべてのコンテンツ) でDataTemplateを作成し、それをPivot.HeaderTemplate
プロパティに割り当てる必要があります。
1 つの解決策として、この記事で説明されている次の方法があります。
1.次のように (またはリソースから取得して) DataTemplate を作成します。
string xaml =
@"<DataTemplate
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<StackPanel>
<TextBlock Text='bla' />
<TextBlock Text='blub' />
</StackPanel>
</DataTemplate>";
DataTemplate dt = (DataTemplate)XamlReader.Load(xaml);
2.次に、プロパティに割り当てdt
ますPivot.HeaderTemplate
:
yourPivot.HeaderTemplate = dt;
そうは言っても、それが本当に必要なものであることを確認するには:
ヘッダーの外観を変更したくないがPivot
、ヘッダーにバインドされているものDataTemplate
(含まれているテキストなど) のみを変更したい場合は、プロパティに別の値を割り当てるだけで済みますPivotItem.Header
。
たとえばDataTemplate
、次のようなヘッダーを使用します。
<DataTemplate
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<StackPanel>
<TextBlock Text='{Binding Test1}' />
<TextBlock Text='{Binding Test2}' />
</StackPanel>
</DataTemplate>
そしてそのようなPOCO:
public class TestPOCO
{
public string Test1 { get; set; }
public string Test2 { get; set; }
}
PivotItem.Header
次の方法でコンテンツを変更できます。
yourPivotItem.Header = new TextPOCO { Test1 = "newValue1", Test2 = "newValue2"};