New Features in Xamarin.Forms 4.7: Multibinding, Light and Dark Modes
Tags: mobile, android, ios, xamarin
Published: 2020-08-07 11:55:06

---
title: New Features in Xamarin.Forms 4.7: Multibinding, Light and Dark Modes
published: true
date: 2020-08-06 10:00:30 UTC
tags: mobile, android, ios, xamarin
canonical_url: https://www.syncfusion.com/blogs/post/new-features-in-xamarin-forms-4-7-multibinding-light-and-dark-modes.aspx
cover_image: https://www.syncfusion.com/blogs/wp-content/uploads/2020/07/New-Features-in-Xamarin.Forms-4.7-Multibinding-Light-and-Dark-Modes-672x372.jpg
---
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
- Light and Dark Modes

## **Multibinding**  

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.

![Binding objects code: Source Vicente Guzman on GitHub](https://www.syncfusion.com/blogs/wp-content/uploads/2020/07/Binding-objects-code-Source-Vicente-Guzman-on-GitHub.png)<figcaption>Source: <a href="https://github.com/LucioMSP/Xamarin.Forms.Examples/blob/master/MultiBinding_XF/MultiBinding_XF/Views/MainView.xaml">Vicente Guzman on GitHub</a></figcaption>

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.

![Multi binding: Source: Vicente Guzman GitHub](https://www.syncfusion.com/blogs/wp-content/uploads/2020/07/Source-Vicente-Guzman-GitHub-gif.gif)<figcaption>Source: <a href="https://github.com/LucioMSP/Xamarin.Forms.Examples/blob/master/MultiBinding_XF/Result/MultiBinding.gif">Vicente Guzman GitHub</a></figcaption>

**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.

## **Light and Dark Modes**

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**.

![Light mode in Xamarin 4.7 update](https://www.syncfusion.com/blogs/wp-content/uploads/2020/07/Light-and-dark-mode-Source-Vicente-Guzman-GitHub-2.png)<figcaption>Light theme in Xamarin 4.7 update</figcaption>

![Dark mode in Xamarin 4.7 update](https://www.syncfusion.com/blogs/wp-content/uploads/2020/08/Dark-mode-in-Xamarin-4.7-update.png)<figcaption>Dark theme in Xamarin 4.7 update</figcaption>

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**.

```html
<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:

```csharp
Application.Current.UserAppTheme = OSAppTheme.Dark;
```

Otherwise, if we want the application theme to be kept in light mode, we use:

```csharp
OSAppTheme.Light
```

And if we want our application to fit the device theme by default, we add this line:

```csharp
OSAppTheme.Unspecified
```

**Example:**

![Example: Source: Vicente Guzman GitHub](https://www.syncfusion.com/blogs/wp-content/uploads/2020/07/Example-Source-Vicente-Guzman-GitHub.png)<figcaption>Source: <a href="https://github.com/LucioMSP/Xamarin.Forms.Examples/blob/master/Dark_Light_Mode/Dark_Light_Mode/MainPage.xaml.cs">Vicente Guzman GitHub</a></figcaption>

**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:

- [MultiBinding\_XF](https://github.com/LucioMSP/Xamarin.Forms.Examples/tree/master/MultiBinding_XF)
- [Dark\_Light\_Mode](https://github.com/LucioMSP/Xamarin.Forms.Examples/tree/master/Dark_Light_Mode)

More information about these features is available at:

- Multibinding merge request on [GitHub](https://github.com/xamarin/Xamarin.Forms/pull/8684).
- Microsoft docs on [multibinding](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/data-binding/multibinding).
- Microsoft docs on [light and dark mode.](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/theming/system-theme-changes)

## Conclusion

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](https://play.google.com/store/apps/details?id=com.syncfusion.samplebrowser), and [UWP](https://www.microsoft.com/en-us/p/syncfusion-essential-studio-for-xamarin/9nn069tldzf4) demo Xamarin apps; learn about our Xamarin controls’ advanced features in our [documentation](https://help.syncfusion.com/xamarin/); and even get your hands on a 30-day [free trial](https://www.syncfusion.com/downloads/xamarin) of all our Xamarin UI controls.

If you like this blog, we think you will also love the following resources:

- [Blog] [Easily Animate Your Xamarin Applications with Lottie Animations](https://dev.to/syncfusion/easily-animate-your-xamarin-applications-with-lottie-animation-26j5)
- [Blog] [7 Ways to Boost Your Xamarin Development Productivity](https://dev.to/syncfusion/7-ways-to-boost-your-xamarin-development-productivity-2hoi)
- [Blog] [Goodbye Xamarin.Forms, Hello MAUI!](https://dev.to/syncfusion/goodbye-xamarin-forms-hello-maui-g85)
- [Video] [Create Beautiful Mobile Apps in 20 Minutes with the New Xamarin UI Kit](https://www.youtube.com/watch?v=AugZail5aBY)