如果你想(重新)定義Pivot
頭的樣子,那麼你必須使用Pivot.HeaderTemplate屬性,它是DataTemplate類型的(這將影響其所有PivotItems
兒童)。
它不能與PivotItem.Header屬性這不是一個模板,但包含數據的對象要被綁定到的標題DataTemplate
每個PivotItem
來完成。
因此,理論上,您必須在您的代碼(及其所有內容)中創建一個DataTemplate,然後將其分配給您的Pivot.HeaderTemplate
屬性。在此article
一種解決方案可能是以下一個解釋:
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"};
謝謝你:)你知道嗎,如果有一個屬性爲我的pivotitem,代表c意圖?如果我使用pivotitem.Content = new TextPOCO,它會覆蓋數據模板,我想。 –
「內容」究竟是什麼意思:可視化樹或綁定數據? – AirL
我找到了解決我的問題的方法:)我的意思是來自我的pivotitem的綁定數據。 –