private void UpdateSettingsTable(Connection connection, string printerLanguage) { ZebraPrinter printer = ZebraPrinterFactory.GetInstance(connection); ZebraPrinterLinkOs linkOsPrinter = ZebraPrinterFactory.CreateLinkOsPrinter(printer); Dictionary <string, Setting> settings = linkOsPrinter.GetAllSettings(); if (settings.ContainsKey(DeviceLanguagesSgd)) { settings[DeviceLanguagesSgd].Value = printerLanguage; } if (settings != null) { Device.BeginInvokeOnMainThread(() => { foreach (string key in settings.Keys) { Entry entry = new Entry { Text = settings[key].Value, }; entry.TextChanged += (object s, TextChangedEventArgs e) => { if (key != null) { if (modifiedSettings.ContainsKey(key)) { modifiedSettings[key] = e.NewTextValue; } else { modifiedSettings.Add(key, e.NewTextValue); } } }; SettingsTableSection.Add(new ViewCell { View = new StackLayout { Padding = new Thickness(15), HorizontalOptions = LayoutOptions.FillAndExpand, Children = { new Label { Text = key, FontSize = Device.GetNamedSize(NamedSize.Default, typeof(Label)), FontAttributes = FontAttributes.Bold }, entry, new Label { Text = $"Type: {linkOsPrinter.GetSettingType(key)}, Range: {linkOsPrinter.GetSettingRange(key)}" } } } }); } }); } else { Device.BeginInvokeOnMainThread(async() => { await DisplayAlert("Settings Error", "Error reading settings", "OK"); }); } }