A ViewModel has a public property that returns the state of some entity.
The View presents that state information in the form of the BackgroundColor (accessibility is taken care of separately).
The ViewModel doesn't know how the View presents the state, so the View uses a ValueConverter to convert the state to the corresponding Color.
All good so far.
The View is made up of a Layout and the Children of that Layout (and any Children or Content of those Children).
The BackgroundColor of the Layout represents the state of the entity.
The BackgroundColor of the Children (and further descendants) of the Layout will also represent the state of the entity, so will be equal to the BackgroundColor of the Layout.
Various implementation methods exist:
(1) The Layout and each of the Children have their BackgroundColor bound to the ViewModel property, each using the ValueConverter. That means lots of repeated conversions.
(2) The Layout has its BackgroundColor bound to the ViewModel property, and each of the Children have their BackgroundColor set to Color.Transparent. So, only one conversion and a lot of Transparent colors.
(3) The Layout has its BackgroundColor bound to the ViewModel property, and each of the Children have their BackgroundColor bound to the Layout's BackgroundColor
(4) Any others?
So, the question is - without breaking MVVM, which would be expected to be the most performant implementation?