private void DeleteLanguageButton_Tapped(object sender, EventArgs e) { OcrLanguage ocrLanguage = (sender as SvgImage).BindingContext as OcrLanguage; if (ocrLanguage == null) { return; } OcrLanguageManager.DeleteLanguage(ocrLanguage.Language); ocrLanguage.IsDownloadable = true; // Manually remove from active/inactive languages, then manually add to downloadable languages if (ActiveLanguages.Contains(ocrLanguage)) { ActiveLanguages.Remove(ocrLanguage); } else if (InactiveLanguages.Contains(ocrLanguage)) { InactiveLanguages.Remove(ocrLanguage); } if (!DownloadableLanguages.Contains(ocrLanguage)) { // Take the language from OcrLanguageManager.DownloadableLanguages instead of the local downloadable languages list since that one // has the updated class members like file size and what not. var langs = OcrLanguageManager.DownloadableLanguages.Where(l => l.Language.Equals(ocrLanguage.Language)); if (langs != null && langs.Count() > 0) { ocrLanguage = langs.ElementAt(0); } DownloadableLanguages.Add(ocrLanguage); } ReloadCachedLanguagesInfo(); }