2

我在 XAML - WPF Browser Application - Page 中编写了代码,只有一个Listview和一个buttonlistview(来自其他文件)添加新数据,我试图在按下按钮时使第一列自动调整大小,我正在使用 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);
   }

}

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

1 回答 1

9

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

如果您XAML将 GridView 命名如下:

<GridView x:Name="dataGridView">

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

 foreach (GridViewColumn c in dataGridView.Columns)
 {
     c.Width = 0; //set it to no width
     c.Width = double.NaN; //resize it automatically
 }
于 2013-10-21T14:24:55.177 回答