- Upgrade UI framework dependencies. Thanks to @BenjaminSieg and @ChezzPlaya.
- Fix window focus/keyboard focus when showing windows. Thanks to @aalex675.
- Added support for
MultiBinding
syntax in dynamic resources.
- Added
initialFocus
property for XML fields.
- Added property
IgnoreNullOrEmpty
to validation attributes. If this property is set totrue
then validation will pass if the value is null or an empty string. This is useful when a field is optional and validation needs to occur only when a value is given. - Added DatePicker to metro theme.
- Fixed behavior of
WindowOptions.TopMost
andWindowOptions.BringToFront
. - Dropdown selections are now virtualized for better performance.
- Added
minheight
andmaxheight
to xml<layout>
element. If content overflowsmaxheight
a vertical scroll bar appears.
Prompt<T>
now validates input on positive action.- Metro dialog window no longer forces controls theme.
- Metro dialog window now passes initial focus to the controls.
- Added ComboBox control to WPF theme.
- Added
IsDefault
andIsCancel
bindings in WPF and Metro actions. - Added
[DialogAction]
action that is visible only when the form is hosted in a dialog. This action hasClosesDialog = true
by default. - Dialogs and dialog windows have environment flag
DialogHostContext
added by default. - Fixed getter only properties throwing two-way binding errors.
- Added
SelectionType.RadioButtonsInlineRightAligned
for right-aligned radio buttons. - Added
[DirectContent]
attribute that allows passing element rendering directly to WPF. - Changed resource reference from
MaterialDesignTextAreaTextBox
toMaterialDesignOutlinedTextFieldTextBox
- Added support for
IsEnabled
in attributes orenabled
in XML for input elements.
- Fixed bug with bound expressions not escaping curly braces properly.
- Added FormBuilder.TypeConstructors that allows registering custom factories for custom XML input
type
attributes. - Added TimePicker control
- You can add it by decorating
DateTime
class properties with the[Time]
attribute. PropertyIs24Hours
can be assigned to a boolean or a dynamic resource. - You can add it via
<input type="time" ... />
in XML. Attributeis24hours
can be assigned to a boolean or a dynamic resource.
- You can add it by decorating
- Fixed
MaterialColoredIconStyle
validation brush fill for invalid controls.
- Added error text element.
- You can add it via
[ErrorText]
attribute in classes. - You can add it via
<error>
tag in XML.
- You can add it via
- Added parameterized value converters which are created from factories registered in
Resource
class. - Non-input XML elements accept
visible
property. - Added
Invalidate
,IsValid
,ValidateWithoutUpdate
,GetValidationErrors
utilities in ModelState class.Invalidate
temporarily fails validation for a property. If you modify the field, callValidate
, or callValidateWithoutUpdate
, the marked error will disappear. To check the state of this validation error useIsValid
/GetValidationErrors
.IsValid
is useful if you want to check current validation state without triggering side-effects likeValidate
, which sometimes produces unexpected results.ValidateWithoutUpdate
should generally be avoided unless you are dealing with some strange edge cases.GetValidationErrors
returns the list of error strings from specified properties/whole model.
- Added
Must.BeInvalid
(andMust.Fail
alias) validator for external validation. This validator always fails, so you must combine it with theWhen
condition. - Added
ValueAttribute.OnActivation
andValueAttribute.OnDeactivation
validation actions which specify what happens when the validator is enabled/disabled from theWhen
condition. - Added
SelectionType.RadioButtonsInline
for horizontal layout of radio buttons in selections.
- Stable NuGet release.