You can use this page to maintain the type-sensitive tagged-value hints that MDriven Designer downloads at startup and shows to people editing tagged values.
Purpose
This page is the central hint definition for tagged values (TVs). A tagged value is a UML extension mechanism that adds metadata to a model element; see Documentation:TaggedValues for the general concept and examples of how tagged values are used.
MDriven Designer downloads this information at startup. The Tagged Value editor uses it to identify the type of model element being edited, filter the available tagged values, and display a short usage hint.
This page is intended for maintainers of MDriven's tagged-value guidance. It is not a general list of every tagged value currently stored in an individual model.
The following table lists the available tagged-value hints:
| #TargetType.TaggedValue | CommaSeparatedExampleValues | Short Description |
|---|---|---|
| #Column.DataIsImageUrl | True,False | When set on a ViewModelColumn, the data string is treated as an Image URL by Turnkey. See: Column.DataIsImageUrl |
| #Column.DataIsLink | True,False | When set on ViewModelColumn, the string data within is treated as a hyperlink. See: Column.DataIsLink |
| #Column.BlobDownloadLink | True,False | When set on a ViewModelColumn, the Blob content can be downloaded by a hyperlink rather than rendered. See: Column.BlobDownloadLink |
| #Nesting.Editable | True,False | Nesting that represents the grid will render web grid cells as possibly editable (depending on read-only expression). See also: Nesting.Editable |
| #Column.MaxFetch | <int> | Declare "MaxFetch=<int>" on the ViewModelColumn action that initiates the search to change from the default (100). See also: Column.MaxFetch, MaxFetch |
| #Attribute.ExternalBlobStorage | True,False | Large files can be kept out of the granular model database. This is a Turnkey functionality only, and the files will be stored (with the simplest out-of-the-box solution) on disk App_Data/BlobStorage. See: Attribute.ExternalBlobStorage |
| #Column.StringFormat | yyyy-MM-dd , #.00# | WPF, Blazor, MVC : TaggedValue StringFormat on ViewModelColumn has precedence for finding a binding Stringformat - normally, the stringFormat is taken from <StyleRef>.StringFormat, but if this tagged value (TV) has value - <value>.StringFormat is used. See Column.StringFormat, Text_formatting |
| #Span.MVC | True,False | The Turnkey Web Application uses MVC for the index and login pages. It defaults to AngularJS for all other pages. To get MVC on other pages, you must set the tagged value MVC=true on the ViewModel. See: Span.MVC
|
| #Span.BLAZOR | True,False | When set, it will render the page with client-side Blazor |
| #Column.Angular_Ext_Component | <Angular component name> | To set UIOverride on ViewModelColumn, assign this tagged value. Turnkey will now look for a component definition in the EXT_Components folder. See: Column.Angular Ext Component |
| #Column.Blazor_Ext_Component | AssembliesWithoutExtension;NameOfComponentType | Components in Blazor as decscribed here: EXT_ComponentsBlazor |
| #PlacingContainer.Blazor_Ext_Component | AssembliesWithoutExtension;NameOfComponentType | Components in Blazor as decscribed here: EXT_ComponentsBlazor |
| #Span.DoNotSearchOnEnter | Existence | UIs in WPF and Turnkey will search on enter as they have seek expressionsâyou can turn this off by defining this TV on the ViewModel level.
See also: Span.DoNotSearchOnEnter |
| #Span.Bootstrap.ClassPrefix | col-xs- | Alter the default Bootstrap column prefix from col-sm- to something else. See: Bootstrap |
| #Span.Bootstrap.StaticSections | Existence | The view parts above the topmost splitter and below the bottom-most splitters will be static in the browser. The middle section scrolls. See: Bootstrap |
| #Method.Eco.ExternalLateBound | Existence | If the TV is set, the ExternalLateBound logic is searched for by implementation of this method. See also: Method.Eco.ExternalLateBound |
| #Span.CSSGrid | True,False | If this is true, then MVC and Angular views will render with CSSGrid instead of Bootstrap. See: Span.CSSGrid |
| #Nesting.MultiSelect | True,False | Allows multi-select. You can then expect vSelected_<NameOfNesting> to be maintained. See: Nesting.MultiSelect
|
| #Nesting.AutoSelectFirstRow | True,False | Should the first row be selected in grids - the default is to not select the first row when having MultiSelect, but do select the first row when there is no MultiSelect |
| #Column.DataIsHtml | True,False | When true, static fields treat the data as markup and display potential HTML in the browser. See: Column.DataIsHtml |
| #Span.Eco.RestAllowed | True,False | Enables a ViewModel to be accessed with REST API (default False). See: Span.Eco.RestAllowed |
| #Span.Eco.UIAllowed | True,False | Disables a ViewModel to be accessed within the UI (default True). See: Span.Eco.UIAllowed |
| #Span.Eco.AutoSave | True,False | Enables a ViewModel to automatically save all changes without showing the Save/Cancel buttons. See: Span.Eco.AutoSave |
| #Column.XmlAttribute | True,False | When using ViewModelAsXml, ViewModel column will be rendered as an XML Attribute. See: ViewModelAsXML, ViewModelAsJSon |
| #Column.XmlChildnode | True,False | When using ViewModelAsXml, ViewModel single link column will be rendered as an XML element tree node. See: ViewModelAsXML, ViewModelAsJSon |
| #Column.NodeName | <name of node> | Used to override the XML and JSON node name usually given by the ViewModel column. Used, for example, to input a - (dash) as a part of the name of an attribute. See: ViewModelAsXML, ViewModelAsJSon |
| #Column.MaxFileSizeInBytes | 10000000 | Limits Blobs and Images to a maximum size of the file (primarily web). See: Column.MaxFileSizeInBytes |
| #Column.AcceptFiles | image/*,.pdf | Rendered in HTML on the <input> file tag as the "accept" attribute. For more info, search for the "accept" attribute. See also: Upload/Download files and images in MDriven Turnkey |
| #Span.HideSidebar | True,False | Hide the sidebar on the page - Note: Use the new HideSidebar checkbox on ViewModel. See: Span.HideSidebar |
| #Span.HideMenubar | True,False | Hides the Menubar for the page. Note: Use the new HideMenubar checkbox on ViewModel. See: Span.HideMenubar |
| #Span.FixColSize | True,False | Set equal column sizes on the page.
See: Span.FixColSize |
| #Column.FixColSize | True,False | Set equal column sizes inside the groupboxes. See: Column.FixColSize |
| #Column.HideHeading | True,False | Hide the heading of the groupbox. See: Column.HideHeading |
| #Column.OpenInNewTab | True,False | Open the link in the new browser tab |
| #Nesting.Eco.WECPOFDoubleClickAction | None,DefaultAction,ModalOkPrecedence | Implemented for WPF but should follow in Turnkey. Controls what should happen on the Grid double click. |
| #Column.Switch | True,False | Changes the checkbox appearance to the switch control. See: Column.Switch |
| #Nesting.CellSelect | True,False | In WPF, this controls if the grid should get CellSelect from start rather than row select. See also: Nesting.CellSelect |
| #Column.Placeholder | Placeholder text | Adds placeholder text for text and number fields. See: Column.Placeholder |
| #Column.autofocus | True,False | Focuses the control when it appears on the screen. Might conflict with other focus events. See: Column.autofocus |
| #Column.autocomplete | True, False | Hint for form autofill feature (disabled by default for every input field).
See: Column.autocomplete |
| #Nesting.FrozenColumns | 1,2 | In WPF, DataGrid can freeze leftmost columns from scrolling (aka fixedcolumns). |
| #Attribute.CheckIdNameConflict | True,False | Avoids warning about naming conflicts between a table and the automatically named ID columns when generating an SQL database.
See also: Attribute.CheckIdNameConflict |
| #Column.XmlParentValue | True,False | Makes the attribute's value appear as the parent element's value instead of an element. Note: If used on more than one attribute in the same ViewModel class, the result is undefined. See: ViewModelAsXML |
| #Column.Resizable | True,False | Make the text area element resizable.
See: Column.Resizable |
| #Column.Eco.ImageWidth | 20,30,40 | Controls WPF Images in Grids - default is 20. |
| #Column.Eco.ImageHeight | 20,30,40 | Controls WPF Images in Grids - default is 20. |
| #Column.StringFormatAngular | date:'yyyy-MM-dd HH:mm:ss Z' , number:0, number:2,numberhash:2 | Sets the Angular format attribute that controls text rendering. Replaces the FormatAttr to resemble WPF and Razor.
See also: Column.StringFormatAngular, Text_formatting |
| #Column.Texttype | password,email,tel,url,search | For inputs intended as type text, this type can be overridden with something else.
See: Column.Texttype |
| #Attribute.Eco.BlobType | SVG,XamlSymbol,Image,Blob,RichText | Set on attributes of classes to influence how a binary array or text field should be interpreted. See: Attribute.Eco.BlobType |
| #Column.Eco.BlobType | SVG,XamlSymbol,Image,Blob,RichText | Set on a Column to influence how a binary array or text field should be interpreted.
See: Column.Eco.BlobType |
| #Nesting.Striped | True,False | Adds the striped style to your table.
See: Nesting.Striped |
| #Span.ModalSize | narrow,large,veryLarge | Choose the size of the modal window which will contain your ViewModel.
See: Span.ModalSize |
| #Nesting.IsSeekerResultGrid | True,False | Seeker page logic uses this to show buttons in the grid. See: Nesting.IsSeekerResultGrid |
| #Attribute.Realtime | True,False | If changed, it will be invalidated in all clients upon saving asap - i.e., by an active push from the server. See also: SignalR and Realtime |
| #Column.Icon | Set the icon to your action from the default Material Design icons pack. | |
| #Column.IconPosition | before,after | Choose the position of the icon inside your action button. By default, the icon is placed before the button text. |
| #Column.IconButton | True,False | Displays just the icon instead of the button text. See: Material Design Icons |
| #Column.IconInInput | True,False | Enable this Tagged value to put the icon inside the input control instead of the label. |
| #Nesting.ClientSortable | True,False | Makes all columns in the table sortable by clicking on the header. Can be overridden on each column. Defaults to True for tables that are not Seeker results. |
| #Column.ClientSortable | True,False | Makes the column sortable by clicking on the header. Default is inherited from the table. Default is False in Seekers. |
| #Column.SeekerSortable | True,False | Makes the column sortable by clicking on the header in a Seeker. |
| #Nesting.Eco.SeekerDefaultOrderColumnName | Name of the attribute in the OrderExpression ViewModel class to use when a result is found using this search expression.
See also: Seeker view | |
| #Nesting.Eco.HiliteGridColumn | Viewmodel name of the SearchResultGrid result and the Name of the attribute in that ViewModel in the format <ViewModelName>.<AttributeName>. This column will be highlighted (coloured) when the result is found using this search expression.
See also: Seeker view | |
| #Span.XmlRootTag | Influence root tag used in ViewModelAsXML. See also: Span.XmlRootTag | |
| #Span.SkipWhenBacking | True,False | When pressing back into this view we skip and move to the view before - (Implemented in WPF) - Good if you have a switchboard view that automatically navigates somewhere |
| #Nesting.ShowOldContextMenu | True,False | If this option is enabled - the old context menu will appear instead of the new one. |
| #Column.TaJsonTreatListAsDynamicProperties | True,False | When this is true, we read the nesting in the ViewModel object and look for Name and Value properties - we then use the result as properties on the resulting json object. Read more: Tajson |
| #Column.TaJsonTreatListAsValues | True,False | When this is true, we generate a json array of the first column in the ViewModel nesting. This gives a json array of values rather than of objects. Read more: Tajson |
| #Column.SkipStyleLogic | True,False | To be used when _Style column is not to be interpreted as a style name in Xaml or CSS-class in HTML - instead, it is just data picked up by some other style's binding - or HTML style info. See also: Column.SkipStyleLogic, Turnkey Styling |
| #Attribute.AllowMVCAccess | ok,notok,okwhenauthenticated | The GetImage of MVC - this is the default "ok" for byte[] and default not ok for strings. See: MVC GetImage |
| #Nesting.IncludeCurrentAndSelectedVariables | True,False | Default True, which includes vCurrent and vSelected as data in a streaming ViewModel. Used when easy access to current and selected row are not wanted when databinding. See: Nesting.IncludeCurrentAndSelectedVariables, VCurrent and vSelected |
| #Column.DesignTimeColor | Red,Green,Blue,#1278FF | This sets a background color of the ViewModel column in the ViewModel tree - it is a design time help |
| #Column.RawJSon | True,False | When using AsTajson you may want to inject snippets of already formatted json into the tree. Read more: Tajson |
| #Span.Savebar | True,False | Shows a "savebar" at the top of the screen when unsaved changes exists. Also shows Undo/Redo buttons. Will also hide the left sidebar. See also: Span.Savebar |
| #Span.TurnkeyTimeoutMinutes | Delay in minutes until user will be timed out from current ViewModel. See: Span.TurnkeyTimeoutMinutes, Turnkey Client Timeout | |
| #Span.MemorySeeker | True,False | If set to true Seeker logic will use OCL to search in memory rather than the standard OCLPS to search in db |
| #Span.UseAngularJSComponents | True,False | Turn on for the view the new implementation of rendering using AngularJS component based application structure. |
| #Column.Fab | True,False | Changing default button presentation to the FAB (Floating action button). Requires icon. |
| #Column.TypeToPresent | time,datetime-local,week,month | Changing the presentation of DateTime object based on chosen option. |
| #Span.Toolbar | True,False | To control the toolbar per view - see Toolbarmode |
| #Column.WillEffectPersistedDataOverrideValue | true,false,notset | Override of the logic that deduce if an expression effects persistent data or not. Reason to use: 1. You have codebehind and logic does not know, 2. You Want a button enabled even when it should not be according to logic 3. AutoLogic does it wrong |
| #ContextAction.WillEffectPersistedDataOverrideValue | true,false,notset | Override of the logic that deduce if an expression effects persistent data or not. Reason to use: 1. You have codebehind and logic does not know, 2. You Want a button enabled even when it should not be according to logic 3. AutoLogic does it wrong |
| #ClassAction.WillEffectPersistedDataOverrideValue | true,false,notset | Override of the logic that deduce if an expression effects persistent data or not. Reason to use: 1. You have codebehind and logic does not know, 2. You Want a button enabled even when it should not be according to logic 3. AutoLogic does it wrong |
| #Nesting.NavigateOnSingleClickEnable | true,false | When set on Nesting displaying grid that has only 1 enabled action that is navigating - execution happens on row select |
| #Nesting.AdvancedTable | true,false | This turn on resize in tables, also see the TurnkeySetting AdvancedTables |
| #Span.GlobalSeekerGridShowImport | true,false | On SeekerViews in apps that has the GlobalSeekerGridShowImportOnlyONTV=true control the "Import from clipbook" option by setting this TV |
| #Attribute.MetricImperial | GramOunce,
MillimeterInch, MilliliterFluidOunce, CelsiusFahrenheit, SquareKilometersSquareMiles, SquareMetersSquareFeet, SquareCentimetersSquareInches, KilometersPerHourMilesPerHour, MetersPerSecondFeetPerSecond |
Attributes that store decimal numbers (decimal,double,single and their nullables) can use this value to store metric value but display imperial value based on a setting as described here documentation:MetricImperial |
| #Column.MetricImperialUIDecimals | 2,3... | |
| #Column.MetricImperial | GramOunce,
MillimeterInch, MilliliterFluidOunce, CelsiusFahrenheit, SquareKilometersSquareMiles, SquareMetersSquareFeet, SquareCentimetersSquareInches, KilometersPerHourMilesPerHour, MetersPerSecondFeetPerSecond |
|
| #Attribute.MetricImperialUIDecimals | 2,3... | Controls rounding in Metric/Imperial conversions |
How designers use these hints
To obtain the current hint information in MDriven Designer:
- Open the editor where you access tagged values.
- Select Refresh from Wiki.
- Use the filtered options and the usage hint shown for the current model-element type.
The editor can also offer defined values when a tagged value accepts multiple values. For instructions on working with tagged values in the Designer, see Documentation:Tagged values in the Designer.
Hint key format
Each hint is identified with this key pattern:
#TargetType.<Modernity.>Function
| Part | Meaning |
|---|---|
#
|
Prefix used by the hint key. |
TargetType
|
The type of model element to which the tagged-value hint applies. |
<Modernity.>
|
An optional segment in the key pattern. |
Function
|
The tagged-value function described by the hint. |
For example, a key must follow the pattern above, beginning with # and identifying the target type and function. Do not add an entry until its exact target type, function name, supported value format, and behavior have been confirmed.
Authoring rules
- Add a hint here for each valid tagged value that MDriven Designer should present with type-sensitive guidance.
- Keep the hint specific to the target type so that the Designer can filter options correctly.
- Include a brief usage description that tells the reader what the tagged value controls.
- Where a tagged value accepts a defined set of values, record the allowed values so that the editor can help the user make a valid definition.
- Do not add entries for settings that already have a dedicated Designer property. Those settings are deliberately excluded from this hint data.
- Do not use this page to document application-specific tags. Use Documentation:TaggedValues as the starting point for understanding tagged values in a model.
Maintaining this page
Before publishing a new or changed hint:
- Confirm that the tagged value is valid for the intended model-element type.
- Confirm that the tagged value does not already have a corresponding MDriven Designer property.
- Verify the exact tagged-value name and any allowed values.
- Add the type-specific key and concise usage guidance.
- Refresh from the wiki in the Tagged Value editor and verify that the option appears for the intended type and that its hint is understandable.
Scope
This page supplies tagged-value help. Property Inspector help is maintained separately on Documentation:MDrivenDesignerPropertyInspectorHints.
