I think you should data bind earlier. Try this way.
protected void productListView_ItemEditing(object sender, ListViewEditEventArgs e)
{
productListView.EditIndex = e.NewEditIndex;
DataBind();
DropDownList PDDL = (DropDownList)productListView.Items[e.NewEditIndex].FindControl("ProductCategoryDDL");
productListView.EditIndex = e.NewEditIndex;
}