Вот одно из возможных решений, которое может быть осуществимо, потому что у вас есть доступ к коду для компонентов, которые вы используете.
Существует три шага к этому решению:
- Определите функцию обратного вызова в вашем первом компоненте.
- Определите параметр во втором компоненте.
- Определите свойство в родительском компоненте (вашей странице).
Шаг 1. Определите функцию обратного вызова в вашем первом компоненте.
Это позволит вам уведомлять родительский компонент (вашу страницу) об изменении свойства.
Объявите свойство PositionId в качестве открытого параметра. .
[Parameter] public int PositionId
Вы можете оставить свои методы получения и установки такими, как они есть.
Измените свой ввод следующим образом:
<input type="text" spellcheck="false" @oninput="OnPositionIdChanged" />
Объявите обратный вызов события следующим образом:
[Parameter] public EventCallback<int> PositionIdChanged { get; set; }
Затем определите метод для обработки изменения следующим образом:
private Task OnPositionIdChanged(ChangeEventArgs e)
{
PositionId = int.Parse(e.Value.ToString());
return PositionIdChanged.InvokeAsync(PositionId);
}
Теперь, когда значение на входе изменяется, будет вызываться EventCallback.
Шаг 2: Определите параметр в вашемВторой компонент.
Это позволит вам передать значение во второй компонент из вашего родительского компонента (вашей страницы).
Объявите открытый параметр, подобный этому:
[Parameter] public int APositionId {get; set; }
Шаг 3. Определите свойство в родительском компоненте (на вашей странице).
Здесь вы определяете свойство, обновляете его при изменении значения свойства в первом компоненте и затем предоставляете это значение. к параметру во втором компоненте.
Определите свойство на своей странице следующим образом:
private int SuppliedPosition { get; set; }
Подключите его к уведомителю об изменениях в первом компоненте следующим образом:
<Position_Hex_IdPair @bind-PositionId="SuppliedPosition" />
Задайте его параметру во втором компоненте следующим образом:
<PositionData APositionId="@SuppliedPosition"/>
Каждое из дополнительных свойств я назвал немного по-разному, так что, надеюсь, понятно, какой именно.
Это оно! Недостатком этого решения является то, что оно требует от вас изменения компонентов и добавления кода на вашу страницу.
Более подробную информацию о обратных вызовах и параметрах событий можно найти в документации Blazor: Документы Blazor .
Надеюсь, это поможет.