【发布时间】:2014-10-24 09:23:10
【问题描述】:
我正在学习使用ListView列出多列的数据(即第1列是文件名,第2列是页数等),遇到了几个问题:
下面的代码显示了 2 列,其中列宽由
<GridViewColumn Width="Auto">指定。如何指定列以使用所有可用宽度?我尝试将Width="*"设置为Grid,但这会产生错误。如何使
ListView不可选择?我看到this post 使ListBox不可选择,但类似的方法不适用于ListView(显示在代码中)。
更新:解决了问题 #2。见代码。
- 您能否展示一个使用
DataTemplate的ListView的简单示例?我只想在 MainWindow 中添加类似<ListView ItemsSource="{Binding }" ItemTemplate="{StaticResource myTemplate}"/>的内容,以便保持干净。
(4.ish。我从this post学到了下面的代码。如果有更简单的方法,请告诉我。)
谢谢!
<ListView HorizontalContentAlignment="Stretch" Grid.Row="0" ItemsSource="{Binding }">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Focusable" Value="False"/> <--- disable selection
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Width="Auto">
<GridViewColumnHeader Content="Filename"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Filename}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="Auto">
<GridViewColumnHeader Content="Pages"/>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Pages}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
<ListView>
【问题讨论】: