Как получать данные из checkbox datagrid C#?

У меня есть Datagrid, который я подключаю к коллекции. Я могу поставить галочку только напротив одного поля, при этом несколько полей я могу выделить. Как я могу ставить галочки напротив нескольких полей и как мне потом получить элементы, напротив которых эти галочки стоят?

<DataGrid SelectionMode="Extended"  AutoGenerateColumns="False" Items="{Binding Item}">
<DataGrid.Columns>
    <DataGridTextColumn Header="Фамилия" Binding="{Binding Surname}"/> 
    <DataGridTextColumn Header="Имя" Binding="{Binding Name}"/> 
    <DataGridTextColumn Header="Отчество" Binding="{Binding Patronymic}"/> 
    <DataGridTextColumn Header="КС" Binding="{Binding Grade}"/> 
    <DataGridCheckBoxColumn  />
</DataGrid.Columns>

Вот класс для коллекции

public class Students
{
    public Students(string Name,string Surname,string Patronymic,string Grade/*,bool State=false*/)
    {
        this.Name = Name;
        this.Surname = Surname;
        this.Patronymic = Patronymic;
        this.Grade = Grade;
       // this.State = State;
    }
    private string name;
    public string Name
    {
        get
        {
            return name;
        }
        set
        {
            if (value.All(char.IsLetter))
                name = value;
            else
                name= "#ERROR";

        }
    }
    private string surname;
    public string Surname
    {
        get
        {
            return surname;
        }
        set
        {
            if (value.All(char.IsLetter))
                surname = value;
            else
                surname = "#ERROR";

        }
    }
    private string patronymic;
    public string Patronymic
    {
        get
        {
            return patronymic;
        }
        set
        {
            if (value.All(char.IsLetter))
                patronymic = value;
            else
                patronymic = "#ERROR";

        }
    }
    private string grade;
    public string Grade
    {
        get
        {
            return grade;
        }
        set
        {
            int a = int.Parse(value);
            if (a < 0 || a > 2)
                grade = "#ERROR";
            else
                grade = value;
        }
    }
    //bool State { get; set; }
}

}

Сама коллекция

  public ObservableCollection<Students> Item { get; set; }

Ответы (0 шт):