EditContext не каскадируется в пользовательский ввод, полученный из InputBaseC#

Место общения программистов C#
Ответить
Anonymous
 EditContext не каскадируется в пользовательский ввод, полученный из InputBase

Сообщение Anonymous »

Я реализовал свой собственный компонент ввода TextInput, унаследовав его от класса InputBase. После расследования выяснилось, что свойство EditContext моего компонента не инициализировано, хотя я использовал свой компонент в EditForm. Если я добавлю официальный компонент InputText, разработанный Microsoft, проблема будет решена и свойство EditContext официального компонента будет инициализировано.

Я сравнил свою собственную реализацию с реализацией от Microsoft, и они почти такие же, но у меня есть часть .razor.

Вот реализация от Microsoft. Это моя собственная реализация:
определение пользовательского компонента:
public partial class TextInput : InputBase
{
[Parameter] public string WrapperCssClass { get; set; } = "";
[Parameter] public string InputCssClass { get; set; } = "";
[Parameter] public string? Label { get; set; }
[Parameter] public string? Placeholder { get; set; }
[Parameter] public bool Required { get; set; } = false;
[Parameter] public bool Disabled { get; set; } = false;
[DisallowNull] public ElementReference? Element { get; protected set; }

protected override bool TryParseValueFromString(string? value, [MaybeNullWhen(false)] out string result, [NotNullWhen(false)] out string? validationErrorMessage)
{
result = value;
validationErrorMessage = null;
return true;
}
}

@inherits InputBase

@if(!string.IsNullOrWhiteSpace(Label))
{
@Label
}



И вот как я использовал этот компонент:


// This one's EditContext is null


// This one's EditContext is initialized





Подробнее здесь: https://stackoverflow.com/questions/793 ... inputbaset
Ответить

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

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

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

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

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