Skip to content

Why we can't make everything an option

Joachim Marder edited this page Nov 30, 2019 · 1 revision

Can we make this an option?

I very often receive the question if a certain behavior could be made optional. Or I receive pull request with very specific features or behaviors, and if I reject them, the question pops up if we can't make this an option.

If I answered all those requests with a "yes", Virtual Treeview would probably have gathered 30 more options in the past 5 years. So why are they a problem?

Usability!

The current number of options is already very high and people have problems finding the appropriate option to change the behavior they need.

Maintainability!

In the end, every combination of options needs to work as expected. The more options are there, the more combinations exists. And the more options you have, the more options exist that are not independent of other options, some options or combinations conflict in certain parts and it remains unclear how the control should behave.

So what is the solution if I absolutely don't want a certain behavior?

The above does not mean that we won't add new options in the future. But there should be a true general interest. This general interest can be discussed in an issue that is flagged with "Open for discussion".

You can also check if it is possible to adjust an unwanted behavior using events or by deriving your own class. To achieve that, don't hesitate to open issues to makes certain methods virtual or to add events.

Why is that better?

That way you can create an individual solution that is not to be expected to work generally in all projects, like a Virtual Treeview options would have to.