There is an unsaved comment in progress. You will lose your changes if you continue. Are you sure you want to reopen the work item?
The DotNetPad project is of particular interest to me, I think its the best example of AvalonEdit and Roslyn available in the public domain. It's fast and it works. Understanding how it's put together, on the other hand, is another matter entirely. While I
have not worked with the DM-V-VM pattern before I was very eager to learn about it when I started into this. But that's fading.
I am confused about.. well a number of things but in particular, and maybe you can help me to understand, in your diagram the DataModel is a binding target from the View, View Model and Controller (and can talk back to the controller through events), but nowhere
is there any mention of the DataModel being able to communicate directly with a View Model. Yet, in the DocumentDataModel you have a Lazy<T> instance of the CodeEditorView Model that is referenced by the FileService in the Shell View Model. There's a
lot of cross referencing going on here and I will admit that I'm finding the implementation of this model in dnp to be quite complex and a little difficult to follow. It's a small demo app, is such complexity necessary to demonstrate the model and framework?
I doubt there would be many developers who would easily grasp what's going on in there coming from an MVVM background. I'm at a point now where I just want to flatten the whole thing into an MVVM pattern just so I can understand what's going on. Please don't
take this as criticism, if the model is implemented as per your design then I stand corrected. It's just not obvious to me at this point.
Am I mistaken about the DataModel referencing the CodeEditor View Model?
Thanks for any advice you can offer.