如何停止标签与WPF列表视图中输出的每个项目重复



这是我第一次使用XAML。我目前正在输出程序中丢失资产的列表,该列表使用XAML和列表视图中的网格显示在UI上。在列表的顶部,我只想要一些标题,说明下面的列表是所有缺失的资产。但我的问题是,对于列表中输出的每一个项目,它都会显示标题,因此标题最终会被输出与丢失资产列表中的项目一样多的次数,这是我的listview 代码

<ListView Grid.Row="0" Grid.Column="1" Margin="0,5,0,20"
ItemContainerStyle="{StaticResource SelectionlessListViewItemStyle}" 
ItemsSource="{Binding MissingAssets}">
<ListView.Style>
<Style TargetType="ListView">
<Style.Triggers>
<Trigger Property="HasItems" Value="False">
<Setter Property="Visibility" Value="Collapsed"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</ListView.Style>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="5,0,5,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="2" Content="The following assets could not be found" FontWeight="Bold" VerticalAlignment="Center"/>
<TextBlock Grid.Row="1" Grid.Column="2" Text="{Binding}" VerticalAlignment="Center" Margin="5,0,0,0"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

这与该属性是标签有关吗?我也试着把它改成一个文本框,但问题仍然存在。

感谢

ListView是一个更加复杂的ListBox。

如果在数据模板中提供标头,则这是预期的行为,因为数据模板用于渲染每个项目。这就是为什么如果您的数据模板中有一个标签,它会重复n次(n是项目源中的项目数(。

如果您想在ListView中提供标题,这里有Microsft文档说明如何提供。

从您的代码来看,也许您只想使用ListBox而不是ListView,您可以将头放在ListBox元素上方,并从数据模板中删除"头",但它可能过于简单,并且您可能没有给出所有数据模板内容。

最新更新