我正在尝试用ListView + GridView替换DataGrid。不幸的是,它看起来完全不同,我不太了解样式来做出所有改变。我找到了列标题,但是单元格的样式实现起来比较棘手。
编辑:这个问题基本上与“我如何获得垂直格栅?”相同?因为我通过使用边缘获得了行间空间。所以它看起来MICROSOFT在他们的GRIDVIEW中忘记了最重要的功能:让它成为网格的一个。const dependency = () => import(
/* webpackChunkName: "login-chunk" */
/* webpackMode: "eager" */
'module in Login.vue'
).then(m => m.default || m);
那么如何设置每个单元格周围的空间(例如每边2个)?
答案 0 :(得分:2)
不幸的是,只要您使用DisplayMemberBinding
,其他所有内容(包括CellStyles)都会被完全忽略。您可以(也可能必须)做的是手动定义所有列,例如:
<GridViewColumn Header="Name">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Margin="4" Text="{Binding Name}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
有关样式/模板优先级on MSDN的详细信息:
以下属性都用于定义列单元格的内容和样式,并按其优先顺序列出,从最高到最低:
- DisplayMemberBinding
- CellTemplate
- CellTemplateSelector
理论上可以将每个ListItem设置为这样:
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Margin" Value="50,0"></Setter>
</Style>
</ListView.ItemContainerStyle>
但不幸的是,这只会使所有列错位,所以这种方法对于Margin / Padding并不是很有用。