2012-04-06 31 views
3

私はGridViewとして使用しているWPF ListViewを持っています。そこに垂直グリッド線を得る方法はありますか?ListViewの垂直グリッド線

ListViewのMinHeightが指定されているので、GridLineをグリッドの最下部まで移動して空の領域を埋めるようにします。

これはややこしい問題です。解決することは可能ですか?

+0

この質問をチェックしましたかhttp://stackoverflow.com/questions/5645078/how-to-put-vertical-lines-for-listviewitem-in-wpf – Habib

+0

これは始まりですが、私が探しているものではありません。グリッド線はヘッダーの下に並んでいませんし、リストビューの一番下まで描画しているようにも見えません –

答えて

1

これは私のやり方です。

 <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> 

SharedSizeGroupGrid.IsSharedSizeScopeプロパティは、それを行うためのこの方法の鍵です。 BorderMargin="0,-2"プロパティは、分割線が連続した垂直線のように見えるようにします。 2つのテキストブロックに垂直マージンを追加する場合は、境界の負の垂直マージンを増やす必要があります。

これは、均一な大きさの2つの列に縦線を入れて整理しますが、データがない領域には拡張されません。その機能を使用するには、ListViewが最適なオプションではない可能性があります。ビューモデルでMyListプロパティにいくつかのデータを追加

は、結果としてこれを提供します:もちろん enter image description here

MyListプロパティがプロパティとしてNameDateModifiedを持つクラスのリストまたはコレクションにする必要があります。

+1

これは機能しません。 –

関連する問題