WPF Datagrid Binding no se actualiza hasta que se hace clic en Encabezado de fila

Tengo una cuadrícula de datos vinculada a una Lista en el modelo de vista. El contenido de la cuadrícula no se actualiza hasta que hago clic en el encabezado de la fila. Hacer clic en varias celdas no lo afecta. Tengo que hacer clic en el encabezado.

Esta es la cuadrícula de datos en XAML:

<DataGrid x:Name="TransactionDetailsGrid" Grid.Row="1" AutoGenerateColumns="False" SelectionMode="Extended" IsReadOnly="True" HeadersVisibility="Column"
                  ItemsSource="{Binding TransactionDetailList}" SelectedItem="{Binding SelectedTransactionDetail}" GridLinesVisibility="None">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=Account.AccountNumber}" Header="Account No." HeaderStyle="{StaticResource DataGridHeaderStyleCenter}" Width="120" />
        <DataGridTextColumn Binding="{Binding Path=Account.AccountName}" Header="Account Name" HeaderStyle="{StaticResource DataGridHeaderStyleCenter}" Width="*" />
        <DataGridTextColumn Binding="{Binding Path=Amount}"  Header="Amount" HeaderStyle="{StaticResource DataGridHeaderStyleCenter}" Width="120" />
    </DataGrid.Columns>
</DataGrid>

Y esto es del modelo de vista:

public List<TransactionDetail> TransactionDetailList
{
    get { return this._transactionDetailList; }

    set
    {
        this._transactionDetailList = value;
        RaisePropertyChanged("TransactionDetailList");                
    }
}

Esta es la edición de uno de los elementos, en el modelo de vista:

private void AddTransactionDetail()
{
    TransactionDetailViewModel viewModel = new TransactionDetailViewModel();

    MainWindowViewModel.ViewLoader.ShowDialog(viewModel);

    if (viewModel.TransactionDetail != null)
    {
        this.TransactionDetailList.Add(viewModel.TransactionDetail);
        RaisePropertyChanged("TransactionDetailList");
    }
}

Después de que esto se ejecute, puedo poner un punto de interrupción en el captador de TransactionDetailList, y la colección tiene el elemento en él. Sin embargo, la cuadrícula de datos está vacía. Si hago clic en la fila del encabezado, el elemento aparece en la cuadrícula.

Tengo el mismo problema al hacer una edición.

He hecho esto con éxito antes, así que no estoy seguro de qué es diferente aquí. ¿Me estoy perdiendo algo obvio? ¿Por qué la cuadrícula no mostrará su contenido hasta que haga clic en la fila del encabezado?

Acabo de notar algo interesante. Cuando hago clic en el encabezado de la cuadrícula, el punto de interrupción en el captador TransactionDetailList no se ve afectado, pero los datos aún se muestran. Entonces, es como si la cuadrícula tiene la información, simplemente no se muestra hasta que se hace clic en el encabezado.

Después de cambiar para usar ObservableCollection, funcionó. Pero ahora tengo el mismo problema con la edición (la cuadrícula no se actualiza hasta que se hace clic en el encabezado):

private void EditTransactionDetail()
{
    TransactionDetailViewModel viewModel = new TransactionDetailViewModel(this.SelectedTransactionDetail);

    MainWindowViewModel.ViewLoader.ShowDialog(new TransactionDetailViewModel(this.SelectedTransactionDetail));

    RaisePropertyChanged("TransactionDetailList");
}

¿Mi entidad necesita implementar INotifyPropertyChanged? Si cambio la colección y llamo a RaisePropertyChanged, ¿no debería eso causar una actualización de la cuadrícula?

Respuestas a la pregunta(2)

Su respuesta a la pregunta