Without a doubt, the Xamarin.Forms team keeps busy developing and releasing new functions, as well as improving others. These new features allow us, as mobile application developers, to unleash all our creative skills when programming in Xamarin.Forms.
In this blog, I am going to focus on what I think are the two most important features available in the Xamarin.Forms 4.7 release. They are:
Multibinding describes a collection of Binding objects associated with a single binding destination property. It allows you to link a property of the binding destination to a list of source properties, and then apply logic to generate a value with the indicated entries.
Among the properties that the MultiBinding class provided us, we have Bindings, of type IList <BindingBase>, which represents the collection of Binding objects within the MultiBinding instance.
Also we have a Converter, of type IMultiValueConverter, which represents the converter that will be used to transform the values from the source to the value of the destination.
Finally, we have the ConverterParameter property, which represents an optional parameter to pass to the converter. Its type is object.
Considering these properties, and thanks to the new improvements presented in Xamarin.Forms 4.7, we can now develop applications that use MultiBinding and link a target property to a series of expressions of type BindingBase (including nested MultiBindings) to later be evaluated to a single value through an IMultiValueConverter instance that is provided by the application.
We can compose a new value—in this case a string—based on the values of different data links.
The following screenshot is a very simple example, but one that makes the functionality clear.
Note: It is important to consider that all the types of the secondary links must be valid MultiBindings, such as those of implicit source (BindingContext), explicit source, relative source, and even those of additional MultiBindings.
The other improvement I want to discuss has been one of the most anticipated features for Xamarin.Forms: the ability to change the app style between dark and light modes. With the arrival of version 4.7, users now have even more control to manage the theme of their applications with UserAppTheme.
Before using this new feature, the first thing we should do is set the experimental indicator for AppTheme_Experimental, which allows us to configure the style of the application and see the real-time update of the interface at runtime, thanks to AppThemeBinding.
<Style TargetType="NavigationPage"> <Setter Property="BarBackgroundColor" Value="{AppThemeBinding Light={StaticResource LightNavigationBarColor}, Dark={StaticResource DarkNavigationBarColor}}" /> <Setter Property="BarTextColor" Value="{AppThemeBinding Light={StaticResource LightSecondaryColor}, Dark={StaticResource DarkSecondaryColor}}" /> </Style>
Regardless of the theme that is used in the device, we can configure the theme of the application. For example, if the phone is in light mode, but we want the application we are developing to be in dark mode, we can add the following line of code:
Application.Current.UserAppTheme = OSAppTheme.Dark;
Otherwise, if we want the application theme to be kept in light mode, we use:
OSAppTheme.Light
And if we want our application to fit the device theme by default, we add this line:
OSAppTheme.Unspecified
Example:
Note: It is important to mention that if AppThemeColor was used, it is necessary to update your Xamarin.Forms to Xamarin.Forms 4.7, since otherwise what was previously demonstrated in this article will not work.
You can find examples of these new features on GitHub:
More information about these features is available at:
I hope you now have a clear idea about the new multibinding and dark and light mode features available with Xamarin.Forms 4.7. Try these features in your Xamarin applications and share your feedback in the comments for this blog.
Syncfusion has 150+ Xamarin UI controls and 100+ Xamarin UI templates to make developing Xamarin applications faster. You can explore Android, and UWP demo Xamarin apps; learn about our Xamarin controls’ advanced features in our documentation; and even get your hands on a 30-day free trial of all our Xamarin UI controls.
If you like this blog, we think you will also love the following resources: