Чтобы всегда был выбран ряд. Настройки, SelectionMode + = Extended, SelectionUnit = FullRow Может ли пользователь добавлять строки = False, Автогенерация заголовка столбца = False. Для данных я использовал привязку к базе данных SQL. MainWindow.xaml Я добавил привязку DataGridTextColumn и имя заголовка. В MainWindow> xaml.cs я выбрал первую ячейку для данных AddID. Я надеюсь, что это помогает другим.
<TabItem x:Name="tab2" Header="tab2">
<Grid Background="#FFE5E5E5" DataContext="{StaticResource addTableViewSource}" >
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<DataGrid x:Name="dg2" HorizontalAlignment="Left" Height="136" Margin="34,29,0,0" VerticalAlignment="Top" Width="500"
ItemsSource="{Binding}" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False" AutoGenerateColumns="False" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True" RenderTransformOrigin="0.529,0.412" AutomationProperties.IsColumnHeader="True">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding AddID}" Header="AddID" Foreground="#FFBF0E0E"/>
<DataGridTextColumn Binding="{Binding FName}" Header="FName"/>
<DataGridTextColumn Binding="{Binding LName}" Header="LName"/>
<DataGridTextColumn Binding="{Binding Street}" Header="Street" Foreground="#FF18904F"/>
<DataGridTextColumn Binding="{Binding City}" Header="City"/>
<DataGridTextColumn Binding="{Binding State}" Header="State"/>
<DataGridTextColumn Binding="{Binding Zip}" Header="Zip"/>
</DataGrid.Columns>
</DataGrid>
<Button x:Name="btn2" Content="Button" HorizontalAlignment="Left" Margin="273,185,0,0" VerticalAlignment="Top" Width="75" Click="Btn2_Click" RenderTransformOrigin="-2.084,4.366"/>
</Grid>
</TabItem>
private void Btn2_Click(object sender, RoutedEventArgs e)
{
var DG2 = dg2.SelectedCells[0];
var cellInfor = dg2.SelectedCells[0];
dg2.CurrentCell = new DataGridCellInfo(dg2.Items[0], dg2.Columns[0]);
var DG22 = (cellInfor.Column.GetCellContent(cellInfor.Item) as TextBlock).Text;
MessageBox.Show(DG22);
int AddID = Convert.ToInt32(DG22);