Text formatting
No edit summary
(Adding page to Category:TOC because it contains a TOC.)
 
(13 intermediate revisions by 4 users not shown)
Line 1: Line 1:
As you bind data to your model you may want to influence how that data is presented.
As you bind data to your model, you may want to influence how that data is presented.


Regretfully we have not found a common way to do this across all our supported platforms - so we have implemented parallel strategies in order to get the job done.
Regretfully, we have not found a straightforward way to do this across all our supported platforms. Instead, we have implemented parallel strategies in order to get the job done.


Om a ViewModel column you set [[TaggedValues|Tagged Values]] in order to convey your wish via the model.
On a ViewModel column, set [[TaggedValues|Tagged Values]] in order to convey your wish via the model.


=== WPF ===
=== WPF ===
For WPF use tagged value '''StringFormat'''. This value is sent into the binding and adheres to the common text transforms pattern defined here [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings for numbers] [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings for DateTimes] and [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings for TimeSpan]
For WPF, use the tagged value '''StringFormat'''. This value is sent into the binding and adheres to the common text transform pattern defined here [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings for numbers] [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings for DateTimes] and [https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-timespan-format-strings for TimeSpan]


WPF is very good at this and allows for the original value to be presented by the format even when the value is two way bound and editable.
WPF is very good at this and allows for the original value to be presented by the format even when the value is two-way bound and editable.


=== AngularJS ===
=== Angular ===
For Angular use tagged value '''StringFormatAngular'''. This value is appended behind the binding as a Angular Filter. Angular has basic capabilities and is not able to handle this kind of formatting for two-way-databind - so it works best for read only values.
For Angular, use the tagged value '''StringFormatAngular'''. This value is appended behind the binding as an Angular Filter. Angular has basic capabilities and is not able to handle this kind of formatting - for two-way-databind - so it works best for read-only values.


For Angular you can transform dates [https://angular.io/api/common/DatePipe according to this guide]
For Angular, you can transform dates [https://docs.angularjs.org/api/ng/filter/date according to this guide] and numbers [https://docs.angularjs.org/api/ng/filter/number according to this guide] and [https://docs.angularjs.org/api/ng/filter/currency currency like this]  - try this for number format with 2 decimals : number:2


=== MVC ===
=== MVC ===
In MVC - use '''StringFormatRazor''' - we can transform in Razor code and thus have many of the same possibilities as in WPF for read-values. Write values are harder - so this works best for one way bind.
In MVC, use '''StringFormatRazor'''. We can transform in Razor code and thus have many of the same possibilities as in WPF for read-values. Write values are harder so this works best for the one-way bind.
 
=== Examples ===
Example for Angular:
[[File:2020-03-11 22h49 16.png|none|thumb|993x993px]]
Above, I have the same attribute1:double shown 3 times. One of the instances instructs Angular to render as a number with 2 decimals only:
[[File:2020-03-11 22h53 07.png|none|thumb]]
Notice both the trimming of decimals and the addition of the thousand separator.
 
==== See also: [[Input Controls]] ====
[[Category:MDriven Designer]]
{{Edited|July|12|2024}}
 
[[Category:TOC]]

Latest revision as of 14:14, 26 March 2024

As you bind data to your model, you may want to influence how that data is presented.

Regretfully, we have not found a straightforward way to do this across all our supported platforms. Instead, we have implemented parallel strategies in order to get the job done.

On a ViewModel column, set Tagged Values in order to convey your wish via the model.

WPF

For WPF, use the tagged value StringFormat. This value is sent into the binding and adheres to the common text transform pattern defined here for numbers for DateTimes and for TimeSpan

WPF is very good at this and allows for the original value to be presented by the format even when the value is two-way bound and editable.

Angular

For Angular, use the tagged value StringFormatAngular. This value is appended behind the binding as an Angular Filter. Angular has basic capabilities and is not able to handle this kind of formatting - for two-way-databind - so it works best for read-only values.

For Angular, you can transform dates according to this guide and numbers according to this guide and currency like this - try this for number format with 2 decimals : number:2

MVC

In MVC, use StringFormatRazor. We can transform in Razor code and thus have many of the same possibilities as in WPF for read-values. Write values are harder so this works best for the one-way bind.

Examples

Example for Angular:

2020-03-11 22h49 16.png

Above, I have the same attribute1:double shown 3 times. One of the instances instructs Angular to render as a number with 2 decimals only:

2020-03-11 22h53 07.png

Notice both the trimming of decimals and the addition of the thousand separator.

See also: Input Controls

This page was edited 53 days ago on 03/26/2024. What links here