We hebben een applicatie draaien die een XAML frontend heeft (WPF applicatie in de browser), en die wordt aangestuurd middels een webservice. Nu probeer ik een formuliertje op te bouwen, en die naderhand weer te verwerken. Nu is dit in principe niet zo'n probleem en ik heb dit gefabriceerd:
en
ik bind als volgt:
DynamicReportGroup.Properties is een List<Property> en heeft de volgende properties:
- Name
- Value
- ContentType
Nou het werkt dus prima, ik krijg een tabelletje met links de name's en rechts tekstboxjes. De catch is, afhankelijk van de ContentType wil ik een object laten zien. Bijvoorbeeld ContentType=ContentType.String -> een tekstvak; ContentType=ContentType.Date -> een datepicker, etc. etc.
Nu kan ik dat in ASP.Net doen door bijvoorbeeld de Controlcollection in een repeater te modificeren, maar hoe kan ik het in WPF
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <Page.Resources>
<DataTemplate x:Key="ItemTemplate">
<Grid Width="Auto" Height="Auto">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" x:Name="desc" Text="{Binding Name}" Grid.Row="0" Grid.Column="0"></TextBlock>
<TextBox
VerticalAlignment="Center" x:Name="val" Grid.Row="0" Grid.Column="1" Text="{Binding Value}"></TextBox>
</Grid>
</DataTemplate>
</Page.Resources> |
en
code:
1
2
3
4
5
6
7
8
| <ScrollViewer x:Name="ContentScrollViewer" Width="Auto" Height="Auto" VerticalScrollBarVisibility="Auto" Grid.Row="2">
<StackPanel x:Name="ReportStackPanel" Style="{StaticResource PageStackPanel}">
<ItemsControl x:Name="ReportGroupsItemsContol" ItemsSource="{Binding}" ItemTemplate="{StaticResource ItemTemplate}" />
</StackPanel>
</ScrollViewer> |
ik bind als volgt:
code:
1
| ReportStackPanel.DataContext = dynamicReportGroup.Properties; |
DynamicReportGroup.Properties is een List<Property> en heeft de volgende properties:
- Name
- Value
- ContentType
Nou het werkt dus prima, ik krijg een tabelletje met links de name's en rechts tekstboxjes. De catch is, afhankelijk van de ContentType wil ik een object laten zien. Bijvoorbeeld ContentType=ContentType.String -> een tekstvak; ContentType=ContentType.Date -> een datepicker, etc. etc.
Nu kan ik dat in ASP.Net doen door bijvoorbeeld de Controlcollection in een repeater te modificeren, maar hoe kan ik het in WPF