This may be a long question, I will do my best to ask him correctly.
I want to read large .txt files with lots of numeric data. In each file there will be โchannelsโ (30-50 channels, with its own name, axis units and, of course, data). So I created a class Channel with these properties and a class File that has a list of these channels. It also has a method that reads a file and saves everything in lists.
I want to be able to upload multiple files at the same time, and for this I created a UserControl , which consists of a button for loading a file and a ComboBox that displays each channel:
( ComboBox bound to ObservableCollection ) Data is stored in code behind the user control. Therefore, when I insert several UserControls in MainWindow , I cannot access this data.
I want to have multiple UserControl ...

... and be able to display data from each in this Plotter and be capable of some control (previous, next ..)

My first approach was to store everything in a UserControl , which was easy to do but inefficient. So, I realized that the solution could be to store everything in a different place, and then access it from MainWindow or another place. I tried VERY GEST to learn MVVM and use it in my project. But I have to be very STUPID, because I canโt get it.
My new approach is described in the following diagram:

My questions:
1. Is this the right way to do this? If MVVM is a way, please, please explain to me a bit at the beginning, because I am not able to translate these complex MVVM examples into my project.
2. If I do this more or less correctly, how can I store all this data in a different place and access it from MainWindow ? (in my File class, I have a method that stores everything in lists, so in my UserControl I have a Browse button that gets the file name, and then using the read () method I store everything inside (?) File class , or at least inside the place where I created the new file: UserControl ).
I will send a code, photo, additional information, anything if necessary. Thanks.