имеют следующую ситуацию. На моей странице бритвы у меня есть 40 кнопок, каждая из которых открывает один из 40 Blazored-модалов:
<div class="row">
...
<button type="button" @onclick="@(() => ShowComBoxModal())">
ComBox Parameters
</button>
</div>
<div class="row">
...
<button type="button" @onclick="@(() => ShowGTLSModal())">
GTLS Parameters
</button>
</div>
Для каждого из 40 модалей я написал процедуру для открытия модала, например:
void ShowComBoxModal()
{
var parameters = new ModalParameters();
parameters.Add("PkId", CurrentD5User.PkId);
parameters.Add("SystemID", 7);
parameters.Add("cfg", cfgComBox);
ModalService.Show<ModalComBox>("ComBox", parameters);
}
void ShowGTLSModal()
{
var parameters = new ModalParameters();
parameters.Add("PkId", CurrentD5User.PkId);
parameters.Add("SystemID", 8);
parameters.Add("cfg", cfgGtls);
ModalService.Show<ModalGTLS>("GTLS", parameters);
}
Я хотел бы устранить избыточность наличия почти одного и того же кода 40 раз, написав один метод c. Проблема в том, что я могу передать PkId и SystemID этому методу, потому что они являются строками, но у меня действительно возникли проблемы: а) иметь модальный объект для вызова в <> части метода .Show и б) передать потому что каждый cfgObject имеет один из 40 различных типов, и мне пришлось бы привести его к исходному типу. Я хотел бы иметь что-то вроде этого:
<button type="button" @onclick="@(() => ShowGTLSModal<ModalGTLS>(@CurrentD5User.PkId, 8, "cfgGtls"))">
GTLS Parameters
</button>
void ShowModal<T>(string PkId, string SystemID, object cfgObject)
{
var parameters = new ModalParameters();
parameters.Add("PkId", PkId);
parameters.Add("SystemID", SystemID);
parameters.Add("cfg", cfgObject);
ModalService.Show<T>("GTLS", parameters);
}
Мои объекты cfgObject бывают разных типов:
GoodwillPkw cfgGodwill = new GoodwillPkw();
ComBox cfgComBox = new ComBox();
Gtls cfgGtls = new Gtls();
ConnectMe cfgConnectMe = new ConnectMe();
...
Так что мне придется привести этот объект обратно к его исходному типу И иметь Show-method использует тип, который я получаю в этом методе. Последнее я смог бы достичь в каждом из 40 классов модальных компонентов. Но у меня возникли проблемы с добавлением класса модальных компонентов в элементе <>.
Это возможно как-то?