【发布时间】:2018-06-14 21:43:37
【问题描述】:
我有带有 DataTemplate 的 ListBox,如下所示:
<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 等属性。它在设置为 DataSource 的 List 中。这部分工作正常。
但是我需要向这个 ListBox 添加额外的条目,它将显示在 DataTemplate 之前。它不会有绑定或相同的结构 - 它将用作标题,并且将具有与 DataTemplate 不同的布局。 有什么办法吗?如果我像在普通 ListBox 中一样添加它,则会收到一个错误,即 ListBox 在使用绑定之前必须为空。
有可能吗?如果有办法使用 ListBox 以外的其他元素,我可以,只要我可以使用 Binding 和 DataTemplate。
【问题讨论】:
-
你想让这个项目随着列表滚动吗?还是应该是静态的?
-
@ShawnKendrot 没关系
标签: c# wpf data-binding listbox