WPF DataGrid largeurs de colonne et la réorganisation des

J'ai un DataGrid défini comme

<wpftoolkit:DataGrid
        x:Name="AccountsDataGrid"
        AutoGenerateColumns="False"
        ItemsSource="{Binding Path=Accounts}"
        ColumnReordered="DataGrid_ColumnReordered"
        SelectionUnit="FullRow"
        RowHeaderWidth="0"
        HorizontalAlignment="Stretch"
        VerticalAlignment="Stretch"
        >
        <wpftoolkit:DataGrid.Columns>
            <wpftoolkit:DataGridTextColumn Header="Account Id" Binding="{Binding Path=AccountId}" Width="Auto" />
            <wpftoolkit:DataGridTextColumn Header="Account Name" Binding="{Binding Path=AccountName}" Width="*" />
        </wpftoolkit:DataGrid.Columns>
    </wpftoolkit:DataGrid>

qui, à la charge de l'allure. la première colonne correspond à la largeur minimale nécessaire pour s'adapter à la fois le contenu et l'en-tête. la deuxième colonne s'étire pour remplir le reste de la largeur de la grille de données (donc je n'ai pas de 3ème de remplissage de la colonne). Mais si je tente de réorganiser les colonnes, les AccountName colonne ne peut pas être réduite à une largeur inférieure à ce que sa largeur était avant de le réorganiser. J'ai donc ajouté un gestionnaire sur le ColumnReordered événement, en pensant que je peux le réinitialiser les largeurs de colonne, mais il ne semble pas fonctionner. En fait, il rétrécit AccountId colonne à presque rien, et le nom de compte alambic à colonne ne peut pas être redimensionnée plus petits.

private void DataGrid_ColumnReordered(object sender, Microsoft.Windows.Controls.DataGridColumnEventArgs e)
    {
        foreach (DataGridColumn column in AccountsDataGrid.Columns)
        {
            if (column.Equals(AccountsDataGrid.Columns.Last()))
            {
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Star);
            }
            else
            {
                column.Width = new DataGridLength(1.0, DataGridLengthUnitType.Auto);
            }
        }
    }

Est-il une meilleure façon de gérer la largeur des colonnes et pourquoi la réorganisation des colonnes briser la colonne de redimensionnement de la capacité

OriginalL'auteur kenwarner | 2009-08-07