// обработчик события представления на получение параметра валюты по её названию private void View_CurrencyIdentificator(object sender, CurrencyIdentificatorEventAgs e) { // если в качестве параметра валюты задано название валюты, // то возвращаем значение поля объекта e, хранящего название валюты if (e.Identificator == CurrencyIdentificator.RusName) { e.IdentificatorValue = e.RusName; } else { var Currencies = Model.Currencies; // список валют, предоставляемый моделью через одноимённое свойство // поиск валюты с заданным именем; var Currency = Model.Currencies.First(x => x.RusName == e.RusName); // возвращаем значение параметра валюты через соответсвующее поле объекта e if (e.Identificator == CurrencyIdentificator.Id) { e.IdentificatorValue = Currency.Id.ToString(); } else if (e.Identificator == CurrencyIdentificator.EngName) { e.IdentificatorValue = Currency.EngName; } else if (e.Identificator == CurrencyIdentificator.NumCode) { e.IdentificatorValue = Currency.NumCode.HasValue ? Currency.NumCode.ToString() : ""; } else if (e.Identificator == CurrencyIdentificator.CharCode) { e.IdentificatorValue = Currency.CharCode != null ? Currency.CharCode : ""; } } }
// обработчик события выбора валюты из списка private void CurrenciesListBox_SelectedIndexChanged(object sender, EventArgs e) { if ((CurrenciesListBox.SelectedIndex != -1) && (IdentificatorComboBox.SelectedIndex != -1)) { var CurrencyRusName = (string)CurrenciesListBox.SelectedItem; // название валюты var Identificator = GetCurrencyIdentificator(); // параметр, определяющий валюту // объект, хранящий данные события CurrencyIdentificator var currencyIdentificatorEventAgs = new CurrencyIdentificatorEventAgs(CurrencyRusName, Identificator); // вызов события на получение параметра валюты по её названию CurrencyIdentificator(this, currencyIdentificatorEventAgs); // запись в текстовое поле значения параметра, определяющего валюту IdentificatorValueTextBox.Text = currencyIdentificatorEventAgs.IdentificatorValue; } }