У меня есть ListBox с DataTemplate, например:
<ListBox ItemsSource="{Binding}" BorderBrush="Transparent"
Grid.IsSharedSizeScope="True"
HorizontalContentAlignment="Stretch"
Grid.Row="1"
Grid.Column="0" Grid.ColumnSpan="4"
Name="playerList">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="2">
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" FontWeight="Bold" FontSize="16" />
<TextBlock Grid.Column="1" Text="{Binding Drinked }" FontWeight="Bold" FontSize="16" />
<TextBlock Grid.Column="2" Text="{Binding Remaining }" FontWeight="Bold" FontSize="16" />
<Button Grid.Column="3" Name="addButton" Click="addButton_Click" FontWeight="Bold" FontSize="16">+</Button>
<Button Grid.Column="4" Name="substractButton" Click="substractButton_Click" FontSize="16">-</Button>
</Grid>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
У меня есть класс со свойствами Name, Drinked и т. Д. Он в List ‹> установлен как DataSource. Эта часть работает нормально.
Но мне нужно добавить дополнительную запись в этот ListBox, которая будет отображаться перед DataTemplate. У него не будет привязок или такой же структуры - он будет служить заголовком и будет иметь другой макет, чем DataTemplate. Есть ли способ это сделать? Если я добавляю его, как в обычном ListBox, я получаю сообщение об ошибке, что ListBox должен быть пустым перед использованием привязки.
Но мне нужно, чтобы это выглядело так:
Возможно ли это сделать? Если есть способ сделать это, используя другой элемент, кроме ListBox, меня это устраивает, если я могу использовать Binding и DataTemplate.