Программно добавить ContentTemplate в TabControl
У меня есть этот TabControl
<TabControl x:Name="tcProvince" Margin="2" ItemsSource="{Binding Path=WorkingEntity.Rates.CodeByProvinceCollection, Mode=OneWay}" SelectionChanged="tcProvince_SelectionChanged" >
<TabControl.ContentTemplate>
<DataTemplate>
<max:MaxGrid>
<max:MaxGrid.RowDefinitions>
</max:MaxGrid.RowDefinitions>
<max:MaxGrid.ColumnDefinitions>
</max:MaxGrid.ColumnDefinitions>
</max:MaxGrid>
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
Затем внутри каждой вкладки я хочу создать динамическую сетку, например:
+-------+-------+--------+-------+
| 2016 | 2017 | 2018 | 2019 |
+-------+-------+--------+-------+
| xxx | xxxx| xxxx | xxxxx |
+-------+-------+--------+-------+
year
а также xxx
являются значением, введенным клиентом. Чтобы добавить год он должен нажать на кнопку, и xxx
есть ввод TextBox, где он может редактировать его в любое время. Так что я понятия не имею, сколько год и стоимость я получу.
Мой псевдокод выглядит примерно так:
- На TabControlSelectionChange
Если Сетка была сгенерирована, просто отобразите ее.
иначе:
- Возьмите DataTemplate (или создайте новый, не имеет значения)
- Генерация столбцов в соответствии с коллекцией
- вставить значения в ячейках
- создать привязку для
TextBox
- вставьте новую сетку в TabItem
У меня есть почти все инструменты для этого. Я просто могу понять, как установить новую сетку в качестве содержимого TabItem, так как TabItem является типом содержимого моей коллекции