2017-10-02 4 views
0

私はUWPアプリケーションを作成しようとしています。私はHubの数値がHubSectionsであるので、各セクションは1日を表します(最初は今日です)。HubSections UWPハブでのバインド

HubSectionsの番号はわかりませんが、すべて同じコンテンツテンプレートを持っています。

HubSections以外のHubには何も追加できません。だからItemsControlはオプションではありません。

ハブのHubSectionsをバインドして、必要な数だけ動的に作成するにはどうすればよいですか?私が達成したい何

<Hub ItemsSource={Binding MySectionData}> 
    <DataTemplate> 
    <!-- I would define the HubSection template here --> 
    </DataTemplate> 
</Hub> 

答えて

1

私は動的に必要な数を作成するために、ハブのHubSectionsをバインドするにはどうすればよいですか?

HubSectionsを動的に作成するには、コードを後で作成するだけです。 HubSectionsは前述のとおりContentTemplateと同じなので、HubSectionを動的に追加すると、XAMLにDataTemplateを定義し、HubSectionのソースをContentTemplateに設定することができます。

XAMLコード:背後

<Page.Resources> 
    <DataTemplate x:Key="FeaturedSectionTemplate"> 
     <Grid> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="Auto" /> 
       <RowDefinition Height="*" /> 
      </Grid.RowDefinitions> 
      <TextBlock Style="{StaticResource SubheaderTextBlockStyle}" 
         Grid.Row="1" Margin="0,10,0,0" TextWrapping="Wrap" 
         Text="Lorem ipsum dolor sit nonumy sed consectetuer ising elit, sed diam"/> 
      <TextBlock Style="{StaticResource TitleTextBlockStyle}" Grid.Row="2" Margin="0,10,0,0" 
         Text="Description text:"/> 
      <TextBlock Style="{StaticResource BodyTextBlockStyle}" Grid.Row="3" 
         Text="Lorem ipsum dolor sit amet, consectetuer ising elit... "/> 
     </Grid> 
    </DataTemplate> 


コード:たとえば

private void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    for (int i = 0; i < 8; i++) 
    { 
     HubSection s = new HubSection 
     { 
      Name = "name1", 
      Header = "More...", 
      //IsHeaderInteractive = true, 
      Width = 500, 
      Height = 420, 
      ContentTemplate = (DataTemplate)this.Resources["FeaturedSectionTemplate"] 
     }; 
     MyHub.Sections.Add(s); 
    } 
} 

詳細はUsing a hubを参照してください。

関連する問題