Как передать строку как параметр объекта - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть несколько объектов, содержащих различную информацию (string, int, double, список, ...) о чем-то (скажем, автомобили, самолеты, замки, города, ...). Эти объекты имеют разную структуру, но довольно похожее использование.

В моем приложении мне нужно, чтобы пользователь мог получить содержимое объекта, возможно отредактировать его и вернуть обратно к объекту. Я пытаюсь сделать это как можно более универсальным c, чтобы у меня был только один диалог «редактирования», а также проще в обращении, когда я бы добавил новый элемент в один из объектов или новый тип объекта полностью. Я смог заставить работать первую часть, создав DataGridView, где в первом столбце у меня есть имя элемента, а во втором столбце значение, но мне не удается получить информацию обратно, так как я не знаю, как использовать строка из первого столбца, служащая в качестве параметра объекта для ссылки.

Например, это может выглядеть следующим образом:

public class Cars
    {
        public string Make { get; set; }
        public int Age { get; set; }
        public double Value { get; set; }
    }

public partial void Main
{
    Cars CurrentCar = new Cars{ Make = "Ford", Age = 14, Value = 1.23 };
}

, который затем загружается в DataGridView в форме

----------------
| Make  | Ford |
----------------
| Age   | 14   |
----------------
| Value | 1.23 |
----------------

Пользователь изменяет значение Age на 15, и мне нужно вернуть его на CurrentCar, поэтому я использую

string WhereTo = EditItemTable[0, 1].FormattedValue.ToString();
string What = EditItemTable[1, 1].FormattedValue.ToString();

Я знаю, что значение WhereTo равно "Age "но обычно я не знаю, что CurrentCar имеет Age часть. Мне нужно что-то в соответствии с

CurrentCar.WhereTo = ToInt32(What);

Но я не могу найти способ передать WhereTo в CurrentCar в качестве параметра.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 10 апреля 2020

Я не знаю, как вы структурировали информацию, которую нужно собрать. В этих случаях я рекомендую использовать систему хранения данных, которую можно легко извлечь из первичного идентификатора, такого как раздел INI-файла. Таким образом, при изменении любого значения это будет относиться исключительно к запрашиваемому объекту.

Возможно, это не совсем то, что вам нужно, но я предлагаю вам восстановить данные из внешнего файла, для которого можно выполнить синтаксический анализ.

Однако я не рекомендую использовать ваш метод поиска, основанный на изменениях параметров. Я думаю, что это не очень элегантно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...