Skip to content

Properties

Name
SupportedLanguages
PreferredLanguage
IsPreferredLanguageRtl
TryChange

Example

xml
<ComboBox x:Name="CmbLanguage" ItemsSource="{x:Bind AppLanguages}" SelectedIndex="{x:Bind SelectedAppLanguageIndex, Mode=TwoWay}">
    <ComboBox.ItemTemplate>
        <DataTemplate x:DataType="dev:AppLanguageItem">
            <TextBlock Style="{ThemeResource BaseTextBlockStyle}"
                        Text="{x:Bind Name}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>
cs
public sealed partial class BlankPage1 : Page, INotifyPropertyChanged
{
    public event PropertyChangedEventHandler? PropertyChanged;
    private void OnPropertyChanged([CallerMemberName] String propertyName = "")
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
    public ObservableCollection<AppLanguageItem> AppLanguages => AppLanguageHelper.SupportedLanguages;

    private int selectedAppLanguageIndex = AppLanguageHelper.SupportedLanguages.IndexOf(AppLanguageHelper.PreferredLanguage);

    public int SelectedAppLanguageIndex
    {
        get => selectedAppLanguageIndex;
        set
        {
            if (AppLanguageHelper.TryChange(value))
            {
                selectedAppLanguageIndex = value;
                OnPropertyChanged(nameof(SelectedAppLanguageIndex));
            }
        }
    }
}

Demo

you can run demo and see this feature.

Released under the MIT License.