Open robloo opened 4 years ago
@MikeHillberg Can you help me understand the tradeoff between RegisterReadOnly versus a OneWay binding? Is the value here that you can't do a TwoWay binding because it's captured by the DependencyProperty itself?
You can't do a TwoWay binding, nor set it from a Style Setter or VisualState, nor can you call the property setter explicitly from code. Without this feature you can still simply not have a property setter, but that doesn't affect the mechanisms that set the DP directly.
This is needed for controls and library authors mostly I believe. For instance the WPF docs site an IsMouseOver
property or maybe with a StateTrigger
you have a IsActive
property where you want other UI elements/bindings to observe that state and react to it, but not be able to manipulate it still.
Needed
Proposal: Support DependencyPropertyKey and RegisterReadOnly as in WPF
Summary
Support is needed for read-only dependencies properties in UWP/WinUI. This is especially true for collection-type properties backed by a list that shouldn't be changed through the binding system. It will also allow several existing properties to be updated to support binding and MVVM (which is important in several application-specific scenarios).
Rationale
This is needed several places (examples listed below) and has been a rather large architectural gap since UWP inception as compared to WPF.
Scope
Important Notes
Switching to using read-only DPs in existing controls would be a binary breaking change but as the property accessors could be the same it would be minor. It would just enable binding.
Also see the discussions here: