Как правильно добавить в BindingList? WPF

объясните пожалуйста, как добавить данные в методе Save()? и как найти индекс в _programModelsList?

public partial class MainWindow : Window
{
    private readonly string _path = $"{Environment.CurrentDirectory}\\programDataList.json";
    private BindingList<ProgramModel> _programModelsList;

    private FileIOService _fileIOservice;

    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {

        _fileIOservice = new FileIOService(_path);
        try
        {
            _programModelsList = _fileIOservice.LoadDate();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            Close();
        };

        ProgramWatcher _programWatcher = new ProgramWatcher();
        Thread thread = new Thread(_programWatcher.Wather);
        thread.Start();

        _programWatcher.NotifyStart += Save;
        _programWatcher.NotifyStop += AddInSave;

        _programModelsList = new BindingList<ProgramModel>()
        {
            new ProgramModel()
            {
                Id = "rr",                                                             
                Name = "rr"
            }
        };
        dgTodoList.ItemsSource = _programModelsList;
        _programModelsList.ListChanged += _programModelsList_ListChanged;             
    }

    public void Save(string id)
    {
        var proc = Process.GetProcessById(int.Parse(id));
        _programModelsList = new BindingList<ProgramModel>()
        {
            new ProgramModel()
            {
                Id = id,
                Name = proc.ProcessName,
                TimeStart = proc.StartTime
            }
        };
        _programModelsList.ListChanged += _programModelsList_ListChanged;
    }

    public void AddInSave(string id)
    {
        DateTime time = DateTime.Now;
        int index = _programModelsList.IndexOf(id);
        _programModelsList[index].TimeStop = time.ToLocalTime();
        _programModelsList[index].LongTime =
            time.ToLocalTime().Subtract(_programModelsList[index].
            TimeStart).ToString("h':'m':'s");
    }

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