Para aquellos que buscan una solución alternativa de C #:
Si por alguna razón necesita tener habilitadas las "Columnas autogeneradas", una cosa que puede hacer es especificar el ancho de todas las columnas excepto las que desea que se redimensionen automáticamente ( no ocupará el espacio restante , pero cambiará el tamaño al contenido de la celda ).
Ejemplo (dgShopppingCart es mi DataGrid):
dgShoppingCart.Columns[0].Visibility = Visibility.Hidden;
dgShoppingCart.Columns[1].Header = "Qty";
dgShoppingCart.Columns[1].Width = 100;
dgShoppingCart.Columns[2].Header = "Product Name"; /*This will be resized to cell content*/
dgShoppingCart.Columns[3].Header = "Price";
dgShoppingCart.Columns[3].Width = 100;
dgShoppingCart.Columns[4].Visibility = Visibility.Hidden;
Para mí, funciona como una solución porque necesitaba cambiar el tamaño de DataGrid cuando el usuario maximiza la ventana.
AutoGenerateColumns="True"
?