У меня есть форма с большим количеством TextBoxes, а также в моей программе много потоков, которые должны читать содержимое этих TextBoxes (настроек).
Поскольку я не могу получить доступ к элементам управления из других потоков, я решил создать специальный класс, который будет содержать все параметры, и, если пользователь изменит их, элемент управления вызовет событие OnTextChanged и изменит соответствующее значение в классе. Но если я воспользуюсь этим подходом, то будет много подобных обработчиков, таких как
private void txtCrap1_TextChanged(object sender, EventArgs e)
{
Settings.Crap1 = txtCrap1.Text;
}
Я хочу сделать что-то вроде этого
private void SetUpControlBindings()
{
AddBinding(txtCrap1, Settings.Crap1);
AddBinding(txtCrap2, Settings.Crap2);
}
private void AddBinding(object control, object value)
{
//Add entry to some kind of dictionary
}
private void UpdateValue(object sender, EventArgs e)
{
if (sender is TextBox)
{
//Search it in dictionary and change appropriate value
}
}
Но я не могу найти указатели на переменные в C #
Есть идеи как это сделать?
P.S. Я не могу использовать отражение, так как мой код будет запутан после компиляции
UPD:
На самом деле моя программа немного сложнее. У меня есть не только текстовые поля, но и флажки CheckBox, NumericUpDowns и т. Д. Также я хочу, чтобы в классе «Настройки» содержались некоторые дополнительные объекты, такие как списки.