Problem związany z wiązaniem ComboBox DataGrid z wybranym lub nowym elementem

Mam problem z zachowaniem zaznaczonego elementu w kolumnie DataGridTemplate ComboBox. Mam edytowalną kolumnę combobox DataTemplate jako pierwszą kolumnę w datagrid, a obok mam kolumnę tekstową. DataGrid jest wypełniona danymi odczytanymi z procedury zapisanej w bazie SQL. Wszystko działa dobrze, z wyjątkiem sytuacji, gdy wybieram element w polu kombi i przechodzę do pola tekstowego i zaczynam w nim wpisywać, zaznaczenie Kombi jest puste. Wygasza zarówno dla nowego przedmiotu, jak i istniejącego przedmiotu. Co dziwne, dzieje się to tylko za pierwszym razem. Po ponownym wybraniu wartości ComboBox lub ponownym dodaniu nowego elementu i powrocie do pola tekstowego nie jest pusta. Brakuje mi pomysłów i próbowałem wielu kombinacji, ale do tej pory nie miałem szczęścia. Oto mój kod:

Oto jak zapełniam DataGrid:

using (SqlCommand cmd = new SqlCommand())
{
    cmd.CommandText = "GetProducts";
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection = sqlConn;

    var reader = cmd.ExecuteReader();
    var dt = new DataTable();
    dt.Load(reader);
    dt.Columns["ProductName"].AllowDBNull = true;
    dtProductCfgTable = dt;
    ProductCfgGrid.ItemsSource = dtProductCfgTable.DefaultView;
}

To jest deklaracja dla listy ProductNamesList:

public List<string> ProductNamesList { get; set; }

XAML:

<DataGridTemplateColumn Header="ProductName">
   <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
        <ComboBox ItemsSource="{Binding ProductNamesList, 
                                RelativeSource={RelativeSource AncestorType=Window}}"  
                                SelectedItem="{Binding ProductName 
                                IsSynchronizedWithCurrentItem="False"  
                                BorderThickness="1.2 1.2 0 0" BorderBrush="Black" 
                                Background="LightCyan" IsEditable="True" />
      </DataTemplate>
   </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>  
<DataGridTextColumn Binding="{Binding ShippingAddress}" 
                    Width="100" 
                    Header="ShippingAddress" 
                    Visibility="Visible"/>

questionAnswers(1)

yourAnswerToTheQuestion