Я пишу небольшое приложение для Win 8.1 и RT. Я хочу создать концентратор с несколькими разделами. Во время разработки я не знаю, сколько секций будет, и я не знаю об их содержании. Поэтому я просто создаю пустой концентратор в XAML во время разработки:
<Hub x:Name="MainHub" Grid.Row="2" Grid.Column ="1">
</Hub>
Во время выполнения я создаю свои Hubsections с их содержимым komplex. В XAML я бы написал так:
<Hub x:Name="MainHub" Grid.Row="2" Grid.Column ="1">
<HubSection>
<DataTemplate>
<Grid Name="TemplateGrid">
...
</Grid>
</DataTemplate>
</HubSection>
</Hub>
Я создал свой TemplateGrid полностью на С#, и теперь я хочу использовать эту сетку в качестве DataTemplate из HubSection (также созданного на С#), чтобы добавить HubSection, наконец, в мой концентратор:
MainHub.Sections.Add(hs);
Как использовать шаблон TemplateGrid в качестве DataTemplate. Я не могу найти никакого решения. Такие простые вещи, как
hs.ContentTemplate = TemplateGrid as DataTemplate;
не работает.
У кого-нибудь есть идея?
Спасибо.
Cy
переместите свой шаблон в Page.Resources и установите x: Key как "TemplateGrid",
<Page.Resources>
<DataTemplate x:Key="TemplateGrid">
<Grid>
...
</Grid>
</DataTemplate>
</Page.Resources>
в вашем коде:
hs.ContentTemplate = this.Resources ["TemplateGrid"] как DataTemplate;