2013-02-02 56 views
0

我已經創建了透視頁面,並且希望在頂部的2個文本塊中顯示一些信息。我創建了DataTemplate併爲文本字段設置了x:名稱。但我不能從頁面構造函數到這個文本塊並放置文本。爲什麼?我該如何欺騙這種情況?我需要在頁面加載時放入文本塊信息。將文本設置爲自定義標題頁面樞紐

 <controls:Pivot.TitleTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock x:Name="textBlock_eventID" TextWrapping="NoWrap" Margin="0"/> 
        <TextBlock x:Name="textBlock_eventName" TextWrapping="NoWrap" Opacity="0.7"/> 
       </StackPanel> 
      </DataTemplate> 
     </controls:Pivot.TitleTemplate> 

回答

2

使用DataTemplate的要點是定義業務對象的表示。也就是說,如果你有一個像類以下內容:

public class MyClass 
{ 
    public string StringOne { get; set; } 
    public string StringTwo { get; set; } 
} 

如果您設置透視控制這個類的一個實例的Title屬性,一個DataTemplate可以用來定義你希望它是什麼看起來像。

在你的情況,模板看起來是這樣的:

<controls:Pivot.TitleTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text="{Binding StringOne}" TextWrapping="NoWrap" Margin="0"/> 
       <TextBlock Text="{Binding StringTwo}" TextWrapping="NoWrap" Opacity="0.7"/> 
      </StackPanel> 
     </DataTemplate> 
    </controls:Pivot.TitleTemplate> 

然後從後臺代碼,你將設置樞軸控件的Title屬性。事情是這樣的:

myPivotControl.Title = new MyClass 
    { 
     StringOne = "Some String", 
     StringTwo = "Some other string" 
    }; 

還有另一種方法可以做到這一點,這將讓你簡單地從代碼中設置文本框後面,但這並不涉及到一個DataTemplate。

設置類似如下的樞軸控件的Title屬性,將使您的文本框的通過名稱來訪問:

<controls:Pivot.Title> 
     <StackPanel Orientation="Horizontal"> 
      <TextBlock x:Name="textBlock_eventID" TextWrapping="NoWrap" Margin="0"/> 
      <TextBlock x:Name="textBlock_eventName" TextWrapping="NoWrap" Opacity="0.7"/> 
     </StackPanel> 
    </controls:Pivot.Title> 

Read this article for more on DataTemplates

+0

謝謝,我知道如何使用DataTemplate中,但沒」瞭解如何將它們應用於頁面 –