В blazor использование @bind-checked в цикле информации о свойствах посредством отражения пользовательского класса.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 В blazor использование @bind-checked в цикле информации о свойствах посредством отражения пользовательского класса.

Сообщение Anonymous »

У меня есть класс 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»