如何在Windows通用应用程序中动态创建hubsections

时间:2015-03-13 19:13:16

标签: c# xaml windows-store-apps win-universal-app

我有ObservableCollection,其中包含许多依赖于用户与应用互动的对象。

我想将每个对象表示为HubSection,因为我不知道对象的数量,所以必须从View后面的代码动态生成HubSections。

在视图后面的代码(xaml.cs文件)中,我创建了一个遍历集合的循环,并在每次迭代中开始创建HubSection。

for (int i = 0; i < list_size; i++)
        {
            tempHubSection = new HubSection();
            tempHubSection.Header = vm.MyCollection[i].Name;
            DataTemplate dt = new DataTemplate();
            ???
            mainHub.Sections.Add(tempHubSection);
        }

但是我对如何创建一个DataTemplate并在其中插入一个Grid感到有些困惑,例如:

<HubSection Width="700" Header="object-1">
      <DataTemplate>
                <Grid>
                        ...
                </Grid>
       </DataTemplate>
</HubSection>

感谢。

1 个答案:

答案 0 :(得分:2)

DataTemplate代码移至app.xaml文件的资源部分,输入名称,例如myTemplate

  <DataTemplate  x:Key="myTemplate">
            <Grid>
                    ...
            </Grid>
   </DataTemplate>

然后您就可以在代码中分配它了:

mainHub.Template = (ControlTemplate)App.Current.Resources["myTemplate"];