/// <summary> /// Initializes a new instance of the <see cref="LanguageControlItemVm" /> class. /// </summary> /// <param name="cultureInfo">The culture info.</param> /// <param name="languageControlVm">The language control vm.</param> public LanguageControlItemVm(CultureInfo cultureInfo, LanguageControlVm languageControlVm) { if (cultureInfo == null) { throw new ArgumentNullException(@"cultureInfo"); } this.cultureInfo = cultureInfo; var baseCultureInfo = cultureInfo; while (!string.IsNullOrEmpty(baseCultureInfo.Parent.Name)) { baseCultureInfo = baseCultureInfo.Parent; } this.Name = baseCultureInfo.NativeName; this.ToolTip = LanguageTranslation.GetLanguageDisplayName(baseCultureInfo); this.AutomationId = cultureInfo.Name; this.languageControlVm = languageControlVm; this.executeActionCommand = new DelegateCommand(this.ExecuteAction); }
/// <summary> /// Selects the language. /// </summary> /// <param name="languageControlItemVm">The language control item vm.</param> /// <exception cref="System.ArgumentNullException">@ languageControlItemVm</exception> public void SelectLanguage(LanguageControlItemVm languageControlItemVm) { if (languageControlItemVm == null) { throw new ArgumentNullException(@"languageControlItemVm"); } if (this.ImsOpcBridgeSettings != null) { this.ImsOpcBridgeSettings.CultureName = languageControlItemVm.CultureInfo.Name; if (this.host != null) { var baseCultureInfo = languageControlItemVm.CultureInfo; while (!string.IsNullOrEmpty(baseCultureInfo.Parent.Name)) { baseCultureInfo = baseCultureInfo.Parent; } var message = string.Format(CultureInfo.CurrentUICulture, Resources.LanguageSetTo_PleaseRestartImsOpcBridgeToSwitchTo_, LanguageTranslation.GetLanguageDisplayName(baseCultureInfo)); this.host.UserInterface.DisplayMessage(message, Resources.Language_Selection, MessageButton.ButtonsOk, MessageType.MessageInformation, DefaultMessageButton.ButtonOk); } else { var baseCultureInfo = languageControlItemVm.CultureInfo; while (!string.IsNullOrEmpty(baseCultureInfo.Parent.Name)) { baseCultureInfo = baseCultureInfo.Parent; } } } this.UpdatePage(); }