I have a DataGrid that was originally written to only show data... view only. I've modified it to allow data entry, but no matter what I do I cannot make it show an empty row to allow the user to add a row. Here's the XAML...

Code:
                            <DataGrid x:Name="grdViewProcCodes" Grid.Row="0" Grid.Column="0" Margin="2,2,0,2" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="True" 
                             IsEnabled="True" IsReadOnly="False" RowHeaderWidth="30" AlternatingRowBackground="LightGray" GridLinesVisibility="All" BorderThickness="2" Grid.RowSpan="2" 
                             SelectionChanged="grdViewProcCodes_SelectionChanged">
                                <DataGrid.RowHeaderStyle>
                                    <Style TargetType="{x:Type DataGridRowHeader}">
                                        <Setter Property="Content" Value="{Binding Converter={StaticResource IndexConverter}, ConverterParameter=grdViewProcCodes}" />
                                    </Style>
                                </DataGrid.RowHeaderStyle>
                                <DataGrid.Columns>
                                    <DataGridTextColumn Header="Proc ID" Binding="{Binding Path=ProcID}" Visibility="Hidden"></DataGridTextColumn>
                                    <DataGridTextColumn Header="Group ID" Binding="{Binding Path=GroupID}" Visibility="Hidden"></DataGridTextColumn>
                                    <DataGridTextColumn Header="Proc Code" Binding="{Binding Path=Code}"></DataGridTextColumn>
                                    <DataGridCheckBoxColumn Header="Addl Req" Binding="{Binding Path=AdditionalRequired}"></DataGridCheckBoxColumn>
                                </DataGrid.Columns>
                            </DataGrid>
Code-side, I bind the DataContext to an observable collection that has been initialized but is empty. I've tried adding an empty row to the underlying collection, but it makes no difference. The DataGrid is showing up empty, with no empty row the user can use to enter data. I thought including CanUserAddRows="True" did that.

Any idea what the problem is?