将动态生成的Grid作为DataTemplate绑定到C#中的HubSection

时间:2014-05-16 12:57:26

标签: c# xaml

我为Win 8.1和RT编写了一个小应用程序。我想创建一个包含多个部分的Hub。在设计时我不知道会有多少部分,我不知道他们的内容。所以我只是在设计时在XAML中创建一个空的Hub:

<Hub x:Name="MainHub" Grid.Row="2" Grid.Column ="1">
</Hub>

在运行期间,我使用他们的komplex内容创建我的Hubsections。在XAML中,我会这样写:

<Hub x:Name="MainHub" Grid.Row="2" Grid.Column ="1">
  <HubSection>
    <DataTemplate>
      <Grid Name="TemplateGrid">
        ...
      </Grid>
    </DataTemplate>
  </HubSection>
</Hub>

我已经在C#中完全创建了我的TemplateGrid,现在我想将这个网格用作HubSection的DataTemplate(也是在C#中创建),最后将Hubsection添加到我的Hub:

MainHub.Sections.Add(hs);

如何将TemplateGrid用作DataTemplate。我找不到任何解决方案。 像

这样简单的东西
hs.ContentTemplate = TemplateGrid as DataTemplate;

不起作用。

有人有想法吗?

谢谢。

赛扬

1 个答案:

答案 0 :(得分:2)

在Page.Resources中移动您的模板,并将x:Key设置为&#34; TemplateGrid&#34;

<Page.Resources>
    <DataTemplate x:Key="TemplateGrid">
      <Grid>
        ...
      </Grid>
    </DataTemplate>
</Page.Resources>
你的代码中的

hs.ContentTemplate = this.Resources [&#34; TemplateGrid&#34;]作为DataTemplate;