如何动态添加包含ListView的HubSections?

时间:2014-02-10 10:49:45

标签: c# xaml windows-store-apps

我想用一个例子描述问题:

  • 获取视频类型项目列表(喜剧,动作,...),每个项目都包含来自网络服务器的视频项目列表(类型和视频的数量无法修复)
  • 在包含resp列表的单独HubSection中显示每个类型。视频项目
  • 选择视频(列表项)触发操作(例如,启动播放器,打开信息框,...)

我所知道的: - 通过c#

添加HubSection

myhubtest.cs

   HubSection hubSection = new HubSection();
   hubSection.Header = "My Title";
   ...
   this.MyHub.Sections.Add(hubSection);

myhubtest.xaml:

   <Hub  x:Name="MyHub" SectionHeaderClick="Hub_SectionHeaderClick">
   ...
  • 通过c#添加DataTemplate myhubtest.cs

    对象xHubListTemplate; this.Resources.TryGetValue(&#34; xHubListTemplate&#34;,out xHubListTemplate); DataTemplate xHubListDataTemplate = xHubListTemplate as DataTemplate; hubSection.ContentTemplate = xHubListTemplate as DataTemplate;

的App.xaml

<DataTemplate x:Key="xHubListTemplate">
   <ListView x:Name="xHubListView" IsItemClickEnabled="True"
      Margin="0,0,0,0"
     ...
    </ListView>
 </DataTemplate>

如何分配ItemsSource和ItemsTemplate以及ItemClick?

1 个答案:

答案 0 :(得分:0)

<Page.Resources>
    <CollectionViewSource x:Name="cvsData"/>
</Page.Resources>

<DataTemplate x:Key="xHubListTemplate">
    <ListView x:Name="xHubListView" ItemsSource="{Binding Source={StaticResource cvsData}}" IsItemClickEnabled="True" ItemClick="xHubListView_ItemClick" >
    </ListView>
</DataTemplate>

代码:

private bool LoadData()
{
    this.cvsData.Source = ...... (list of data)
}

private void xHubListView_ItemClick(object sender, ItemCLickEventArgs e)
{
}