2016-05-10 4 views
1

グリッドビューの列の内容をListViewにリサイズしたいと思います。私はこのスレッドを見つけたListView/GridViewのWPFコンテンツへのサイズ変更方法

<ListView x:Name="listViewStatEntries" 
       AlternationCount="2" Grid.Row="8" Grid.ColumnSpan="3" Background="White" 
       ItemsSource="{Binding StatResult.StatEntries}" > 

    <ListView.View> 
    <GridView> 
     <GridViewColumn Width="Auto" DisplayMemberBinding="{Binding Param.Speciality}"> 
     <GridViewColumn.Header> 
      <GridViewColumnHeader Content="{Binding Labels[2851]}" Tag="Param.Speciality" Click="listViewStatEntriesColumnHeader_Click" Width="Auto" /> 
     </GridViewColumn.Header> 
     </GridViewColumn> 

     <GridViewColumn Width="Auto" DisplayMemberBinding="{Binding Alarm}"> 
     <GridViewColumn.Header> 
      <GridViewColumnHeader Content="{Binding Labels[2765]}" Tag="Alarm" Click="listViewStatEntriesColumnHeader_Click" Width="Auto" /> 
     </GridViewColumn.Header> 
     </GridViewColumn> 
    </GridView> 
    </ListView.View> 

</ListView> 

:ありXAMLコードがあるForce resize of GridView columns inside ListViewとオスカーのソリューションを試してみてください。

public void AutoSizeColumns() 
{ 
    GridView gv = listView1.View as GridView; 
    if (gv != null) 
    { 
    foreach (var c in gv.Columns) 
    { 
     // Code below was found in GridViewColumnHeader.OnGripperDoubleClicked() event handler (using Reflector) 
     // i.e. it is the same code that is executed when the gripper is double clicked 
     if (double.IsNaN(c.Width)) 
     { 
      c.Width = c.ActualWidth; 
     } 
     c.Width = double.NaN; 
    } 
    } 
} 

しかし、このソリューションでは、列は過ぎず、すべてのデータにに見える内容にリサイズされましたリストビュー。列をすべてのデータにリサイズするにはどうすればよいですか?

ご協力いただきありがとうございます。

+0

すべての列の幅が最も長いことを意味しますか? – StepUp

+0

こんにちはステップアップ。私はそれを各列のサイズを変更する必要があります。メソッドはそれでうまく動作しますが、列全体ではなく、可視アイテムでのみ動作します。私は最も長いアイテムを見るために各列のサイズを変更したいと思います! – OkamiRyuu

答えて

0

表示されている行だけのサイズを変更するのは、仮想化がオンになっているためです(デフォルト)。

<ListView VirtualizingStackPanel.IsVirtualizing="False" 
+0

うまく動作します!それは私が必要とするものです。ありがとうございました! – OkamiRyuu

関連する問題