我想不到如何实现以下目标:
我需要将参数集合(或数组)传递给Blazor组件。传递的参数是Blazor组件。参数的集合必须作为嵌套标记传递。必须能够分别调用每个传递的参数组件的呈现。
也就是说,我想要这样的东西:
<MyComponent>
<ParameterCollection>
<MyParameterComponent1>Caption1</MyParameterComponent1>
<MyParameterComponent2>Caption2</MyParameterComponent2>
<MyParameterComponent3>Caption3</MyParameterComponent3>
</ParameterCollection>
</MyComponent>
MyComponent代码:
@code{
[Parameter]
public RenderFragment[] ParameterCollection {get; set;} //Runtime error
}
我想得到的显然是在这里实现的Blazor商业组件(选择“查看源”选项卡)。GridColumns参数传递给GridColumn组件的集合。我认为更准确地说,它是它们对应的RenderFragments的集合。问题是如何完成?
解决这个问题:DatagGridColumnCollection组件将自己作为CascadingValue插入,而DatagGridColumn组件仅调用Add方法。
<CascadingValue Value="this">
@ChildContent
</CascadingValue>
@code
{
public void Add(DataGridColumn colum) { ... }
}
@code {
[CascadingParameter]
private ColumnCollection Parent { get; set; }
protected override void OnInitialized()
{
if (Parent != null) Parent.Add(this);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句