Back and forth on some support tonight and realized that although StardewUI does log warnings for "XYZ will not receive updates", it is only in a rather narrow case, when going through the normal AttributeBindingFactory and specifically when the entire type does not support INPC.
These warnings should also be logged:
When a structural attribute receives one of these bindings
When a special node like <include> receives one
When the type itself does support change notifications, but the particular value being bound to comes from a FieldInfo and therefore probably won't get notifications unless the author has done something unusual to force them.
The logger logic only depends on BindingContext and the IAttribute itself so I think this can be refactored for general use, maybe even pushed up to the ValueSourceFactory to ensure it's never missed.
Back and forth on some support tonight and realized that although StardewUI does log warnings for "XYZ will not receive updates", it is only in a rather narrow case, when going through the normal
AttributeBindingFactory
and specifically when the entire type does not support INPC.These warnings should also be logged:
<include>
receives oneFieldInfo
and therefore probably won't get notifications unless the author has done something unusual to force them.The logger logic only depends on
BindingContext
and theIAttribute
itself so I think this can be refactored for general use, maybe even pushed up to theValueSourceFactory
to ensure it's never missed.