Как правильно добавить в 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");
}