在 Blazor 中,许多组件都是通过数据绑定来实现的。当绑定的数据源发生更改时,组件会自动重新渲染。然而,在 List
解决此问题的方法是实现 IEqualityComparer
以下是一个示例,其中 Product 类实现了 IEqualityComparer 接口:
public class Product : IEqualityComparer
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
public bool Equals(Product x, Product y)
{
if (x == null && y == null)
{
return true;
}
else if (x == null || y == null)
{
return false;
}
else
{
return x.Id == y.Id;
}
}
public int GetHashCode(Product obj)
{
return obj.Id.GetHashCode();
}
}
在组件中,创建 List
List products = new List(new[]
{
new Product { Id = 1, Name = "Product 1", Price = 10 },
new Product { Id = 2, Name = "Product 2", Price = 20 }
});
现在,当列表中的任何元素的 Id 属性更改时,列表将重新渲染。
下一篇:Blazor浏览历史和页面来源