ListView列宽自动

use*_*188 2 c# wpf xaml listview autosize

WPF浏览器应用程序- -我在XAML编写代码页,只有一个Listview和一个button新的数据添加到listview(从其他文件),我试图做的第一列自动调整大小本身当按钮被按下时,我使用的Visual Studio c#2010.

我在后面的代码中使用了以下方法,但是AutoResizeColumns无法识别并给出错误.

不幸的是,以前建议的解决方案都没有与我合作.

守则背后

public partial class Page1 : Page, INotifyPropertyChanged
{

    public Page1()
    {

        InitializeComponent();
        this.DataContext = new Page1Model();

    }

    private void TestListe_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
    }

    public event PropertyChangedEventHandler PropertyChanged;

    private void Button1_Click(object sender, RoutedEventArgs e)

   {
        TestListe1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
   }

}
Run Code Online (Sandbox Code Playgroud)

XAML

<Grid>

    <Grid.RowDefinitions>
        <RowDefinition Height="3*"/>
        <RowDefinition Height="1*"/>
    </Grid.RowDefinitions>
    <ListView Name="TestListe1"   Margin="68,22,421,8"  FontSize="12"  >

        <ListView.View>
            <GridView>
                <GridView.Columns>
                      <GridViewColumn Width="auto">                                <GridViewColumn.HeaderTemplate>
                            <DataTemplate>
                                <TextBlock Text="ST1" Margin="10,0,10,1"/>
                            </DataTemplate>
                        </GridViewColumn.HeaderTemplate>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding One}" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

                                        </GridView.Columns>
            </GridView>
        </ListView.View>
   </ListView>

    <Button Name="Button1" Grid.Row="1" Height="27" Width="95" Margin="262,24,444,74"  Click="Button1_Click" />

</Grid>
Run Code Online (Sandbox Code Playgroud)

Har*_*son 8

AutoResizeColumns来自命名空间System.Windows.Forms.我不确定这是否适用于WPF.但您可以设置列的宽度NAN以使其调整大小

在你的XAML,如果你的名字你的GridView如下:

<GridView x:Name="dataGridView">
Run Code Online (Sandbox Code Playgroud)

然后你可以用这个调整所有列的大小

 foreach (GridViewColumn c in dataGridView.Columns)
 {
     c.Width = 0; //set it to no width
     c.Width = double.NaN; //resize it automatically
 }
Run Code Online (Sandbox Code Playgroud)

  • 大!谢谢.它的工作原理如下:<GridViewColumn Width ="NaN"> (2认同)