Datagridview dose not show any data
08:05 16 Nov 2025

I have a datagridview in my Winform app. I set the columns manually in designer and then try to fill it by a function. I check the function step by step and in the last line of code datasource dt has data inside it. but the datagridview become empty at the end.
there is something else, I can see columns in designer but in the app the datagridview is a empty gray box, I'm sure that the visibly property is true.

private void LoadRequestProducts(int requestId)
{
    using (SqlConnection con = new SqlConnection(connectionDB))
    {
        con.Open();

        string query = @"
            SELECT 
                ProductCode, ProductName, Unit, Quantity,
                CASE WHEN IsReturnable = 1 THEN N'بله' ELSE N'نه' END AS IsReturnable,
                ReasonCode, ReasonDetail, DestinationCode, DestinationName, ReturnDate, Details
            FROM RequestProducts
            WHERE RequestID = @RequestID";

        DataTable dt = new DataTable();
        using (SqlDataAdapter da = new SqlDataAdapter(query, con))
        {
            da.SelectCommand.Parameters.AddWithValue("@RequestID", requestId);
            da.Fill(dt);
        }

        dgvRequestDetails.AutoGenerateColumns = false;

        dgvRequestDetails.Columns["colProductCode"].DataPropertyName = "ProductCode";
        dgvRequestDetails.Columns["colProductName"].DataPropertyName = "ProductName";
        dgvRequestDetails.Columns["colUnit"].DataPropertyName = "Unit";
        dgvRequestDetails.Columns["colQuantity"].DataPropertyName = "Quantity";
        dgvRequestDetails.Columns["colIsReturnable"].DataPropertyName = "IsReturnable";
        dgvRequestDetails.Columns["colReasonCode"].DataPropertyName = "ReasonCode";
        dgvRequestDetails.Columns["colReasonDetail"].DataPropertyName = "ReasonDetail";
        dgvRequestDetails.Columns["colDestinationCode"].DataPropertyName = "DestinationCode";
        dgvRequestDetails.Columns["colDestinationName"].DataPropertyName = "DestinationName";
        dgvRequestDetails.Columns["colReturnDate"].DataPropertyName = "ReturnDate";
        dgvRequestDetails.Columns["colDetails"].DataPropertyName = "Details";

        dgvRequestDetails.DataSource = dt;
    }
}
c# winforms datagridview