Илья, я понимаю, но это ведь просто искусственный пример, а я имею ввиду реальное использование. Окей, контроля над входными данными нет и может прийти все что угодно, но при реальном использовании все равно мы ожидаем увидеть в результате или только int или только string или даже object, разве нет?
> Мне кажется что либо решения через дженерики нет, либо оно какое-то хитро-рекурсивное из-за того что количество разных типов не определено на старте.
Илья, что вы имеете ввиду под "не определена на старте"? Вы имеете ввиду заранее не известно какой тип нужно будет получить ? Если да, то в таком случае вариант с дженериками не подойдет. Но мне сложно представить такой сценарий. Можете описать подробнее как вы собираетесь использовать такой метод?
Артур Дементьев, чтобы ответить подробнее мне нужно увидеть текущий код, иначе получится очередной абстрактный пример которых, в принципе, и так уже довольно много.
Оптимально - в виде репозитория на гитхабе. Но можно и архивом. Если по какой-то причине не хотите открывать код в общий доступ то можно на почту или, если репозиторий приватный, выслать инвайт.
Если коротко то п.3 можно положить в ресурсы на странице на которой находится элемент (если они могут / будут располагаться где-то еще то уровнем выше)
п.5 тоже относится к странице где будет отображаться элемент
4, В VM странице создать свойство задающее новый (динамический элемент), например NewItem
5. В View для этой страницы связать ContentControl с этим элементом
<ContentControl Content="{Binding NewItem}" />
6. При нажатии на кнопку "Добавить" проверять валидность элемента (или блокировать кнопку до тех пор пока данные не будут заполнены правильно)
Однозначно есть смысл погрузиться в изучение F#. Поможет ли это лично вам стать лучшим разработчиков никто заранее сказать не может. Но с высокой долей вероятностью так и произойдет, особенно если вы раньше не сталкивались с функциональным подходом. К счастью, F# лишь в первую очередь функциональный что позволяет получать "+" от каждого из миров.