我有一个WPF ListView,我用它作为GridView。有什么方法可以在那里获得垂直网格线?ListView中的垂直网格线
ListView具有指定的MinHeight,所以我希望GridLine一路走到网格的底部,所以它会填充空白空间。
这似乎是一个相当棘手的问题。是可以解决的吗?
我有一个WPF ListView,我用它作为GridView。有什么方法可以在那里获得垂直网格线?ListView中的垂直网格线
ListView具有指定的MinHeight,所以我希望GridLine一路走到网格的底部,所以它会填充空白空间。
这似乎是一个相当棘手的问题。是可以解决的吗?
这就是我的做法。
<ListView Grid.IsSharedSizeScope="True"
ItemsSource="{Binding Path=MyList,FallbackValue='12345'}" >
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*" SharedSizeGroup="col0"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="1*" SharedSizeGroup="col2"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="10,0"
Text="{Binding Path=Name, FallbackValue='Name goes here'}"/>
<Border Grid.Column="1" Margin="0,-2"
BorderBrush="DarkGray"
BorderThickness="0,0,1,0" />
<TextBlock Grid.Column="2" Margin="10,0"
Text="{Binding Path=DateModified, FallbackValue='Date goes here'}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
的SharedSizeGroup
和Grid.IsSharedSizeScope
性能的关键是做的这样。 Border
上的Margin="0,-2"
属性确保分隔线看起来像一条连续的垂直线。如果向两个文本块添加垂直边距,则需要增加边界的负垂直边距。
这将照顾到事情成两个统一大小的列与他们之间的垂直线,但它不会延伸到没有数据的地方。如果你想要这个功能,ListView可能不是最好的选择。
当然,MyList
属性需要是具有Name
和DateModified
为属性的类的列表或集合。
这不起作用。 – 2017-02-25 04:56:49
你是否检查这个问题http://stackoverflow.com/questions/5645078/how-to-put-vertical-lines-for-listviewitem-in-wpf – Habib 2012-04-06 16:05:10
这是一个开始,但不是我要找的东西。网格线没有排列在标题下,也没有显示它将一直绘制到列表视图的底部 – 2012-04-06 16:28:14