Мне кажется, у меня довольно простая цель, но, похоже, я не могу ее достичь.
Все, чего я хочу добиться, - это иметь ItemsControl (потому что я не хочу функциональность выбора из списка) с заголовком. Желательно статический заголовок.
В настоящее время я использую сетку для заголовка, а затем копирую эту сетку в ItemTemplate (DataTemple) ItemsControl, а затем размещаю их один над другим в сетке. Это вроде работает, но не всегда хорошо выстраивается и т.д.
Затем я нашел HeaderedItemsControl, который, на мой взгляд, был блестящей идеей, но не могу заставить его работать, он просто не показывает заголовок вообще.
Я попробовал следующее;
- Просто введите текст в «Заголовок» Xaml
- Размещение сетки с TextBlocks со статическим текстом в теге ItemsControl.Header
- Помещение сетки в шаблон заголовка (шаблон данных) и привязка его к простому объекту
Я делаю все это в Blend в небольшом проекте, прежде чем перенести его в производственное приложение, и я просто использую простой пример источника данных, который я создал.
Я мог бы здесь упустить лодку полностью, но любая помощь будет признательна.
Мой текущий код выглядит следующим образом, во-первых, мой HeaderedItemsControl
<HeaderedItemsControl Header="HeaderedItemsControl"
ItemsSource="{Binding Collection, Mode=Default}"
ItemTemplate="{DynamicResource ItemsControlDataTemplate}"
HeaderTemplate="{DynamicResource ItemsControlHeaderDataTemplate}"/>
тогда у меня есть ItemTemple, который работает как положено
<DataTemplate x:Key="ItemsControlDataTemplate">
<Grid d:DesignWidth="268">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.754*"/>
<ColumnDefinition Width="0.246*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Property1, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" HorizontalAlignment="Stretch" Margin="0" />
<TextBlock Text="{Binding Property2, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0" />
</Grid>
</DataTemplate>
и затем заголовок, который демонстративно противоречит его трудовой этике, я попробовал его с привязкой и с простым текстом в свойстве TextBlock.Text
<DataTemplate x:Key="ItemsControlHeaderDataTemplate">
<Grid d:DesignWidth="268">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.754*"/>
<ColumnDefinition Width="0.246*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Header.Header1, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
<TextBlock Text="{Binding Header.Header2, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0"/>
</Grid>
</DataTemplate>