Ghost1372

everything can be handy

AppLanguageHelper

Properties

Name
SupportedLanguages
PreferredLanguage
IsPreferredLanguageRtl
TryChange

Example

1
2
3
4
5
6
7
8
<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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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.

0%