Я использую серверные компоненты Blazor в ASP.NET Core 3 preview 4.
У меня есть родительский компонент и дочерние компоненты, использующие одну и ту же общую модель, например:
Модель:
public class CountModel
{
public int Count { get; set; }
public void Increment()
{
Count++;
}
}
Родительский компонент:
@page "/count"
<CascadingValue Value="currentCount">
<h1>Count parent</h1>
<p>Current count is : @currentCount.Count</p>
<button class="btn btn-primary" onclick="@currentCount.Increment">+1 from parent</button>
<CountChild></CountChild>
</CascadingValue>
@functions {
private CountModel currentCount = new CountModel();
}
Дочерний компонент:
<h1>Count child</h1>
<p>Current count is : @currentCount.Count</p>
<button class="btn btn-primary" onclick="@currentCount.Increment">+1 from child</button>
@functions {
[CascadingParameter]
private CountModel currentCount { get; set; }
}
Это тот же экземпляр модели, который используется для родителя и ребенка.
Когда модель обновляется от родительского, оба отображают правильное увеличенное значение.
Когда он обновляется от дочернего, только дочерний элемент отображает правильное значение.
Как заставить родительский компонент обновляться при обновлении от дочернего?
Обратите внимание, здесь у меня есть функция для обновления модели, но я бы хотел, чтобы решение работало, когда данные привязаны к входу.