Обновить ячейку DataGrid, если другие изменения ячейки

У меня есть представление, которое отображает часть. Все части содержат список идентификаторов. В моем представлении я показываю свойства детали и DataGrid со всеми идентификаторами этой части.

Теперь, если я изменю значение идентификатора, я хочу, чтобы новое значение обновлялось по умолчанию. Но если я изменил значение своего идентификатора и установил значение по умолчанию другого свойства - мой DataGrid не обновляется. Только если я нажимаю на ячейку, тогда она обновляется после потери фокуса.

Как я могу автоматически обновить представление?

Я думаю, проблема в том, что я не хочу обновлять прямое свойство Части, но свойство в списке, которое является свойством Части.

Вид

<DataGrid>
    <DataGridTemplateColumn Header="Company">
        <DataGridTemplateColumn.CellEditingTemplate>
             <DataTemplate>
                  <ComboBox x:Name="CompanyEditComboBox" 
                            ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.Companies}" 
                            SelectedItem="{Binding Company, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
                           SelectionChanged = "CompanyEditComboBox_SelectionChanged" />
            </DataTemplate>
         </DataGridTemplateColumn.CellEditingTemplate>
         <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                 <TextBlock Text="{Binding Company}" />
            </DataTemplate>
         </DataGridTemplateColumn.CellTemplate>
     </DataGridTemplateColumn>


    <DataGridTemplateColumn Header="CompanyType">
         <DataGridTemplateColumn.CellEditingTemplate>
              <DataTemplate>
                    <ComboBox x:Name="CompanyTypeEditComboBox" 
                                      ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, Path=DataContext.CompanyTypes}" 
                                      SelectedItem="{Binding IdentificationCompanyType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
              </DataTemplate>
          </DataGridTemplateColumn.CellEditingTemplate>
          <DataGridTemplateColumn.CellTemplate>
              <DataTemplate>
                 <TextBlock Text="{Binding IdentificationCompanyType, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
              </DataTemplate>
          </DataGridTemplateColumn.CellTemplate>
       </DataGridTemplateColumn>
</DataGrid>

Просмотр кода позади

private void CompanyEditComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var vm = (PartViewModel)DataContext;
    var box = (ComboBox) sender;
    var c = (Company) box.SelectedItem;
    vm.SetDefaultCompanyType(c);
}

ViewModel

public void SetDefaultCompanyType(Company c)
{
    SelectedIdentification.IdentificationCompanyType = c.DefaultCompanyType;
    OnPropertyChanged("IdentificationCompanyType");
}

Ответ 1

Решил. Мне пришлось добавить

OnPropertyChanged("IdentificationCompanyType");

в установщик IdentificationCompanyType в классе Identification. После этого он автоматически обновляется в DataGrid.