我有一個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