2010-12-20 2 views
0

안녕하세요, 피벗 요소에 여러 피벗 아이템을 생성하고 싶습니다. 세대가 잘 진행되고 있지만 피벗 요소에 템플릿을 적용하는 방법을 모르겠습니다.생성 된 피벗 요소를 데이터로 채우는 방법 [템플릿]

은 내가 사용해야합니다 생각 :

pivotItem.ContentTemplate = (DataTemplate을) 능숙 [ "KantinenUebersicht"];

그러나 빈 페이지 만 생성됩니다.

ressource 파일에 내 코드는 다음과 같습니다

내 전체 능숙가

< 파일 .ResourceDictionary를 삽입 의 xmlns = "http://schemas.microsoft.com/winfx/2006/ XAML/표현 " 의 xmlns : X ="http://schemas.microsoft.com/winfx/2006/xaml ">

<DataTemplate x:Key="KantinenTemplate"> 
    <StackPanel VerticalAlignment="Top"> 
      <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding name}" FontSize="{StaticResource PhoneFontSizeLarge}" Margin="8,0,0,0" VerticalAlignment="Top"/> 
      <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding entfernung}" Margin="24,0,0,0" FontSize="{StaticResource PhoneFontSizeSmall}" VerticalAlignment="Bottom"/> 
    </StackPanel> 
</DataTemplate> 

<DataTemplate x:Key="KantinenUebersicht"> 
     <Grid> 
      <TextBlock x:Name="KantinenName" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Text="" RenderTransformOrigin="0.566,0.407" Margin="0,0,8,0" Height="55" VerticalAlignment="Top"> 
         <TextBlock.Foreground> 
          <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/> 
         </TextBlock.Foreground> 
      </TextBlock> 
      <TextBlock x:Name="sdfsdf" HorizontalAlignment="Left" Height="40" Margin="8,59,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="196"/> 
      <TextBlock x:Name="lblGeoefsdfsdffnet" Height="40" Margin="208,59,8,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/> 
     </Grid> 
    </DataTemplate></ResourceDictionary.> 

는로했다 삽입하십시오. 첫 번째 태그에 ...

답변

1

당신이하려는 것은 정확합니다.

질문에 "리소스"에 여분의 "S"가있을 수 있습니다.

<phone:PhoneApplicationPage.Resources> 
    <DataTemplate x:Key="KantinenUebersicht"> 
     <Grid> 
      <TextBlock x:Name="KantinenName" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Text="" RenderTransformOrigin="0.566,0.407" Margin="0,0,8,0" Height="55" VerticalAlignment="Top"> 
       <TextBlock.Foreground> 
        <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/> 
       </TextBlock.Foreground> 
      </TextBlock> 
      <TextBlock x:Name="lblEntfernung" HorizontalAlignment="Left" Height="40" Margin="8,59,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="196"/> 
      <TextBlock x:Name="lblGeoeffnet" Height="40" Margin="208,59,8,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/> 
     </Grid> 
    </DataTemplate> 
</phone:PhoneApplicationPage.Resources> 

하고 새 항목을 만들 때 다음을 사용합니다 :

나는 당신의 질문의 코드를 가지고가는 경우에, 나는 페이지에 추가 할 수 있습니다 내 컴퓨터에

var newItem = new PivotItem { Header = "Added" }; 

newItem.ContentTemplate = (DataTemplate)Resources["KantinenUebersicht"]; 

MyPivot.Items.Add(newItem); 

작품 (에뮬레이터).

업데이트 :
별도의 파일에 리소스를 추가 할 경우과 같이 수행 할 수

ResourceDictionary.xaml :

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > 
    <DataTemplate x:Key="KantinenUebersicht"> 
     <Grid> 
      <TextBlock x:Name="KantinenName" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Text="" RenderTransformOrigin="0.566,0.407" Margin="0,0,8,0" Height="55" VerticalAlignment="Top"> 
        <TextBlock.Foreground> 
         <SolidColorBrush Color="{StaticResource PhoneAccentColor}"/> 
        </TextBlock.Foreground> 
      </TextBlock> 
      <TextBlock x:Name="lblEntfernung" HorizontalAlignment="Left" Height="40" Margin="8,59,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="196"/> 
      <TextBlock x:Name="lblGeoeffnet" Height="40" Margin="208,59,8,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/> 
     </Grid> 
    </DataTemplate> 
</ResourceDictionary> 

는 그런 다음 페이지에서이 외부 파일을 참조해야합니다 이 파일을 사용하고 싶습니다.

<phone:PhoneApplicationPage.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="\ResourceDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</phone:PhoneApplicationPage.Resources> 
+0

실제로 자원의 두 번째 's는 상자에 입력하는 동안 발생하는 오류입니다. 그러나 누락 된 것은 ''입니다.하지만이를 ressources 파일에 추가하면 오류가 반환됩니다. – theXs

+0

@theXs "ressources file"은 무엇입니까? 위 코드 샘플은 MainPage.xaml에서 가져온 것입니다. –

+0

내 Ressource 파일 이름은 지금까지 "ResourceDictionary1.xaml"입니다. 방금 "디버깅"하고 "this.resources"에서 볼 수있는 내용을 확인하려고했지만 빈 사전입니다. 아마도 출력이 표시되지 않는 이유 일 수 있습니다. – theXs

관련 문제