У меня есть класс MyModel с более чем 100 свойствами (я знаю), все из которых имеют тип bool? тип данных. Я пытаюсь динамически генерировать два переключателя (Да/Нет) для каждого свойства вместо того, чтобы вручную создавать элементы управления для каждого. Я могу достичь желаемого результата, но не связываю данные с проверкой. Форма редактирования использует либо модель, либо контекст редактирования, я пробовал и то, и другое. (с использованием компонента syncfusion DataForm)
Сначала я попробовал просто зациклить информацию об отраженных свойствах.
Код: Выделить всё
@foreach (var prop in properties)
{
@prop.name
}
Далее я попробовал использовать словарь для хранения имени поля и логического значения, но в этом контексте словари доступны только для чтения и не могут быть двусторонними.
Код: Выделить всё
var dict = new Dictionary
;
(reflection here to set dictionary, setting bool? to null)
@foreach (var kvp in dict)
{
@kvp.Key.Name
}
Затем я изменил словарь, включив в него объект-оболочку, чтобы можно было изменить значение. Это работает, за исключением того, что я не могу использовать контекст/модель редактирования для проверки.
Код: Выделить всё
var dict = new Dictionary
;
@foreach (var kvp in dict)
{
@kvp.Key.Name
}
public class BoolWrapper
{
public bool? YesNo {get; set;}
}
Я открыт для любых идей о том, как это сделать возможным. Я подумывал о том, чтобы сделать класс модели индексируемым, но я все еще новичок в C#, и это добавляет много сложностей, которые я не совсем понимаю.
Есть идеи, как это сделать возможно, очень ценю.
Подробнее здесь:
https://stackoverflow.com/questions/788 ... on-of-a-cu