I have a simple windows store app, based on the hub template.
The main hub contains 8 very similar hubsections. So instead of copy/pasting each hubsection properties I'd like to use some kind of template.
Each hubsection is like so:
<HubSection Width="350" x:Uid="HubSection1" Header="Header1"> <DataTemplate> <ListBox x:Name="lbMilitary" ItemsSource="{Binding}" Grid.Column="1" Background="Red"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"></ColumnDefinition> <ColumnDefinition Width="12"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Style="{StaticResource PlayerNameTextBlockTemplate}" Text="{Binding PlayerName}"/> <TextBox Text="{Binding PlayerScore1, Mode=TwoWay}" Style="{StaticResource TbTemplate}/> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </DataTemplate> </HubSection>
So, to simplify my XAML I have written a contentcontrol, like so:
<Page.Resources> <ResourceDictionary> <DataTemplate x:Key="TemplateTest"> <ContentControl> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto" /> <ColumnDefinition Width="24" /> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <ListBox Grid.Column="0"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock FontSize="32" Text="{Binding PlayerName}"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid> </ContentControl> </DataTemplate> </ResourceDictionary> </Page.Resources>
And I am trying to use this template like so:
<HubSection x:Name="HubSecTest" Header="Test" ContentTemplate="{StaticResource TemplateTest}"> </HubSection>
If inside my control I simply insert a simple element such as a textblock, it seems to be working. But with a listbox (such as the one in the full hubsection model), nothing displays.
What am I doing wrong ?
Also, another difficulty is that in my TextBox that is bound to PlayerScore I would like to be able to choose a specific binding for each separate hubsection, like so :
<HubSection x:Name="HubSecTest" Header="Test" ContentTemplate="{StaticResource TemplateTest}"> <!-- Bind the textblock to "PlayerName" --> <!-- Bind the TextBox to "PlayerScore1" --> </HubSection> <!-- Next hubsection --> <HubSection x:Name="HubSecTest" Header="Test" ContentTemplate="{StaticResource TemplateTest}"> <!-- Bind the textblock to "PlayerName" as in the previous section BUT --> <-- Bind the TextBox to "PlayerScore2" --> </HubSection>
Thanks :)
No comments:
Post a Comment