【问题标题】:How to resize ListView/GridView to contents in WPF如何将 ListView/GridView 的大小调整为 WPF 中的内容
【发布时间】:2016-05-11 00:17:48
【问题描述】:

我想将网格视图的列调整为 ListView 的内容。有 XAML 代码:

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

我找到了这个帖子:Force resize of GridView columns inside ListView 并尝试 Oskar 解决方案:

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

但使用此解决方案,列的大小仅被调整为可见内容,而不是所有数据到 ListView 中。如何将列大小调整为所有数据?

提前感谢您的帮助!

【问题讨论】:

  • 你的意思是所有列的宽度都应该是最长的吗?
  • 嗨,StepUp。我需要将每列的大小调整为它的内容。该方法适用于此,但仅适用于可见项,而不适用于整个列。我想调整每列的大小以查看最长的项目!

标签: c# wpf listview gridview resize


【解决方案1】:

它们仅调整可见行的原因是因为您启用了虚拟化(这是默认设置)。尝试关闭它

<ListView VirtualizingStackPanel.IsVirtualizing="False"

【讨论】:

  • 工作正常!这正是我需要的。谢谢院长!
猜你喜欢
  • 1970-01-01
  • 2013-09-14
  • 2014-04-26
  • 2011-09-14
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
相关资源
最近更新 更多