title | description | type | page_title | slug | tags | res_type | ticketid |
---|---|---|---|---|---|---|---|
Data Binding with QRCode in .NET MAUI Applications |
Learn how to bind a QRCode to a property in the ViewModel in a .NET MAUI application using the Telerik Barcode component. |
how-to |
How to Implement Data Binding for QRCode in .NET MAUI |
data-binding-qrcode-net-maui |
barcode, qrcode, databinding, .net maui, viewmodel, bindingcontext |
kb |
1680174 |
Product | Barcode for .NET MAUI |
Version | 9.0.0 |
As with any other bindable property, you can bind the Value
property of the RadBarcode
to a property in the view model, allowing dynamic updates of the QR code in the UI.
To achieve dynamic updates of a QRCode in a .NET MAUI application, follow these steps:
- Ensure the
RadBarcode
is properly configured in your XAML with the correct binding to the view model property. Use theValue
attribute to bind to the view model property.
<telerik:RadBarcode WidthRequest="160" HeightRequest="160"
HorizontalOptions="Center" VerticalOptions="Center"
Margin="0, 10, 0, 0" Value="{Binding SelectedCity}">
<telerik:RadBarcode.Symbology>
<telerik:QRCode SizingMode="Stretch" CodeMode="Byte"
ErrorCorrectionLevel="H" ECIMode="ISO8859_1"
FNC1Mode="SecondPosition" ApplicationIndicator="00"/>
</telerik:RadBarcode.Symbology>
</telerik:RadBarcode>
- In your view model, implement the property to which the Barcode's
Value
is bound. Ensure this property notifies the UI of changes, typically by implementing theINotifyPropertyChanged
interface.
public class MainPageViewModel : Telerik.Maui.Controls.NotifyPropertyChangedBase
{
private string selectedCity;
public ObservableCollection<string> Cities { get; set; }
public string SelectedCity
{
get => selectedCity;
set => UpdateValue(ref selectedCity, value);
}
public MainPageViewModel()
{
Cities = new ObservableCollection<string>
{
"Madrid", "Los Angeles", "Paris", "Beijing",
"Singapore", "New Delhi", "Bangkok", "Berlin"
};
SelectedCity = Cities.FirstOrDefault();
}
}
- Bind the view model to the View's
BindingContext
to establish the data binding.
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
BindingContext = new MainPageViewModel();
}
}
- Optionally, use a control like
RadComboBox
to change the selected city and see the QRCode update in real-time.
<telerik:RadComboBox ItemsSource="{Binding Cities}"
SelectedItem="{Binding SelectedCity, Mode=TwoWay}"
WidthRequest="200" HorizontalOptions="Center"
VerticalOptions="Center" Grid.Row="1"/>