У меня есть вопрос относительно сложной привязки данных.
Я хочу иметь возможность обновить сетку (для свойства IsItemsHost установлено значение true)
динамически всякий раз, когда происходит привязка данных.
На самом деле я использую CustomControl, который является ItemsControl, и это
имеет сетку в свой ControlTemplate.
Чтобы быть более точным, я привязываю сетку к некоторым элементам и хочу
изменить количество строк сетки в зависимости от этих элементов,
добавить что-то вроде заголовка (одна строка, содержащая текст),
и установите элементы 'Grid.Row и Grid.Column с использованием некоторой пользовательской логики.
Какой самый простой способ применить такое поведение?
когда связанные данные обновляются?
Должен ли я использовать модель представления, которая также содержит данные заголовка?
Заранее спасибо.
Код пользовательского элемента управления Generic.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TimeTableControl">
<Style TargetType="{x:Type local:TimeTableControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:TimeTableControl}">
<Border Width="Auto" Height="Auto" BorderBrush="#FF4B5A9B" BorderThickness="4" CornerRadius="4" Margin="2" Padding="0" Background="White">
<Grid Width="Auto">
<Grid.RowDefinitions>
<RowDefinition Height="0.1*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Viewbox>
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DayCaption}"/>
</Viewbox>
<Border Grid.Row="1" BorderThickness="0,2,0,0" BorderBrush="#FF4B5A9B">
<Grid Name="ContentGrid" IsItemsHost="True">
</Grid>
</Border>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>