::Solution with very minimal changes::
For explanation I am taking the scenario of a Shirt with different sizes.
Sizes are listed as Product Attributes and inventory tracking done using Product Attribute combinations.
Main issue with drop-down is that, you need an element as default.
If Small is the first element and that is selected by default which has no stock, default product availability shows as 'no stock'... Also conditional enabling, disabling becomes difficult and not very visible. Drop-down also needs an extra click to see.
Here is my solution...
Steps below
1. Change the drop-down to radio button list from Product Attributes
2. This would show the attribute Sizes as a list of radio buttons (vertical)
3. Using CSS, style the radio buttons to be horizontal and to act like a button
This makes sure, there is no default selection.
Now there is a small bug, which shows Availability as "In Stock" even if no attribute combination has stock.
https://github.com/nopSolutions/nopCommerce/issues/1991
Suggested solution for the bug is also mentioned.
Now if we can get quantity when the radio button list is created (_ProductAttributes.cshtml)... we can do either of the following
1. Don't create the specific radio button since stock is not there
2. Disable radio button using disabled='disabled' property (MVC hack)
The Quantity in the model available on _ProductAttributes.cshtml always shows Zero.
Here is the radio button list styling to play around... thanks to jsfiddle :)
https://jsfiddle.net/sukeshak/7bLzzo24/
This is how it looks on the sample website
https://img42.com/zmbHkHope it helps... Any questions welcome!