Joh*_*dol 2 wpf layout listview
我知道这一定是显而易见的,但我从 WPF 开始,但我陷入了困境:
我有以下 ListView(在页面主网格的第二行中),内容显示,但标题不显示!
<ListView Grid.Row="1" Name="container" ItemsSource="{Binding MyCollection}" >
<ListView.View>
<GridView>
<GridViewColumn Width="50" Header="A" DisplayMemberBinding="{Binding A}"/>
<GridViewColumn Width="50" Header="B" DisplayMemberBinding="{Binding B}"/>
<GridViewColumn Width="50" Header="C" DisplayMemberBinding="{Binding C}"/>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
编辑:
感谢 Roel,我能够在资源字典中找到导致此问题的样式:
<Style TargetType="{x:Type ListView}" BasedOn="{StaticResource {x:Type ListBox}}">
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ScrollViewer Margin="{TemplateBinding Padding}" VerticalScrollBarVisibility="Visible">
<WrapPanel IsItemsHost="True" MinWidth="100" Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}">
</WrapPanel>
</ScrollViewer>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
如何在项目的其余部分保留该样式而不将其应用于此特定的 listView?
您可以仅覆盖该列表视图的样式。这可能是最简单的方法:
<ListView Grid.Row="1" Name="container" ItemsSource="{Binding MyCollection}" >
<ListView.Style>
<Style TargetType="{x:Type ListView}"/>
</ListView.Style>
<ListView.View>
<GridView>
<GridViewColumn Width="50" Header="A" DisplayMemberBinding="{Binding A}"/>
<GridViewColumn Width="50" Header="B" DisplayMemberBinding="{Binding B}"/>
<GridViewColumn Width="50" Header="C" DisplayMemberBinding="{Binding C}"/>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!