For one of my project, we looked for the possibility to improve editor's experience while using Experience Editor. The issue was that usually, we cannot make all the necessary datasource item fields editable in the Experience Editor, for example, edit Droplist or Droplink fields. Of course, we can use EditFrame and wrap our component with this EditFrame. In that case, we have to provide a list of fields, which we plan to support for editing. On the other hand, we can create a custom button to create a new custom experience button.
I found this blog post https://zablo.net/blog/post/sitecore-dynamic-field-editor/ from MARCIN ZABŁOCKI. I like his solution and it works fine for me. However, I do not like when for each field you have to extend SampleRenderingFieldProcessor with your custom fields and use hard-coded Templates and Rendering IDs. I expect to make it work without hard-coded IDs.
I found the solution!
We can easily get a datasource template and get all the custom fields from there. All the standard Sitecore fields start from “__”, so we can just exclude them.