View Issue Details

IDProjectCategoryView StatusLast Update
0004304NoesisGUIStudiopublic2025-07-17 14:38
Reporterdstewart Assigned Tosfernandez  
PrioritynormalSeverityminor 
Status resolvedResolutionfixed 
Product VersionStudio_Beta 
Target VersionStudio_BetaFixed in VersionStudio_Beta 
Summary0004304: Multi-Field Properties Can Only Use Bindings If All Fields Share Identical Values
Description

We currently offer multiple Properties that offer multiple input fields. Such examples include the 'Margin', 'Padding', and 'Corner Radius' Properties.

The ability to set the fields they offer individually offers an absolutely critical level of customization to UI Elements.
Likewise, our Binding system is a cornerstone of powerful, dynamic interface design within Studio.

However, currently, Bindings can only be employed on a Margin, Padding, or Corner Radius Property if the same value is used across all four of its fields. (or if the Binding is bound to a similar 2x2 Matrix, which the vast majority of Elements don't offer -- almost all numerical values are a single number.)

This restriction makes it impossible to for example, to set a Left Margin to be equal to the <ActualWidth> of another Element.

I realise this is a far more consequential change than just the Studio UI, since its a "that's how it works in WPF" thing, but I've run into this is as a blocker to what I wanted to achieve enough times that I wanted to get this on paper, for us to potentially evaluate/discuss further.

Very quick/rough proposal attached as image. In this scenario, users could elect if they wanted to Bind to all 4 fields simultaneously (as it works now), or Bind individual fields to individual values (in which case the 4-Way Binding as it works now, would be removed in favour of the individuals)

Attached Files
MultiFieldBinding.jpg (76,009 bytes)   
MultiFieldBinding.jpg (76,009 bytes)   
PlatformAny

Activities

sfernandez

sfernandez

2025-07-16 19:34

manager   ~0010916

This is, as you mentioned, a limitation of the framework.

But there are alternatives to do what you want:

  1. We could define a ThicknessConverter that takes a single value and can generate a Thickness with different options: "value", "value, 0", "value, 0, 0, 0", etc. (this is the recommended way)
  2. Use a Binding in a string property with a StringFormat to generate the desired Thickness string, then bind to that (this is just a hacky way to do it)
dstewart

dstewart

2025-07-17 11:38

developer   ~0010917

Thanks for considering this! The ThicknessConverter idea seems very promising, and given that its a modular solution it could potentially be used for other things as well.

Issue History

Date Modified Username Field Change
2025-07-16 14:39 dstewart New Issue
2025-07-16 14:39 dstewart File Added: MultiFieldBinding.jpg
2025-07-16 14:40 dstewart Description Updated
2025-07-16 14:43 dstewart Description Updated
2025-07-16 19:08 sfernandez Assigned To => sfernandez
2025-07-16 19:08 sfernandez Status new => assigned
2025-07-16 19:08 sfernandez Target Version => Studio_Beta
2025-07-16 19:34 sfernandez Status assigned => feedback
2025-07-16 19:34 sfernandez Note Added: 0010916
2025-07-17 11:38 dstewart Note Added: 0010917
2025-07-17 11:38 dstewart Status feedback => assigned
2025-07-17 14:38 sfernandez Status assigned => resolved
2025-07-17 14:38 sfernandez Resolution open => fixed
2025-07-17 14:38 sfernandez Fixed in Version => Studio_Beta