c# как изменять состояния checkbox в коллекции

<DataGrid x:Name="opened_files_dg" Grid.Row="1"
            AutoGenerateColumns="False"
            IsReadOnly="True" 
            Margin="0,5,0,0" 
          
          >
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox  IsChecked="{Binding  Path = chk , Mode = TwoWay}"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
        <DataGridTextColumn Header="Название" Binding="{Binding Title}"/>
        <DataGridTextColumn Header="Длина" Binding="{Binding Duration}"/>
        <DataGridTextColumn Header="Качество" Binding="{Binding Bitrate}"/>
        <DataGridTextColumn Header="Прогресс" Binding="{Binding Progress}"/>
    </DataGrid.Columns>
</DataGrid>

public class Song
{
    public string Title { get; set; }
    public string Duration { get; set; }
    public string Bitrate { get; set; }
    public int Progress { get; set; }
    public bool chk { get; set; }

}

songs = new ObservableCollection<Song>();

if(openfilesDialog.ShowDialog()==true){
  
  foreach (var f in openfilesDialog.FileNames){
    Song song = new Song() {
        Title=f,
        Duration="00:00:00",
        Bitrate="128kb/s",
        chk=false
    };
    songs.Add(song);
  }
  opened_files_dg.ItemsSource = songs;
}

songs заполняется списком открытых mp3 файлов. не могу получить список отмеченных, не обновляется коллекция

//это просто кнопка для получения списка отмеченных

private void go(object sender, RoutedEventArgs e)
{
    string str= "";
    foreach(Song s in songs)
    {
        str += s.chk + "\n";
    }
    test_txt.Text = str;
}

выводит false у всех элементов


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