C# blazor 中如何检查参数是否绑定?

问题描述 投票:0回答:2

我编写了一个具有 30 个左右参数的组件,并且希望在绑定值时自动设置此组件。

当设置一个值时,这可以正常工作,但是有些值可以为空并且可以为空。当给定“null”值时,组件无法检查它是否已设置,所以我想知道:

是否可以在组件中检查变量是否已绑定?如果可以,如何进行?

if(DemoValue.isBinded) {}
c# asp.net-core blazor components
2个回答
0
投票

感谢 @MrC aka Shaun Curtis 的评论,我可以实现以下功能:

private List<string> bindedParameters = new();
public override Task SetParametersAsync(ParameterView parameters)
{
    foreach (var parameter in parameters)
    {
        bindedParameters.Add(parameter.Name);
    }
    return base.SetParametersAsync(parameters);
}

代码中的任何其他地方都可以像这样检查变量:

if (bindedParameters.Contains(nameof(ParamterToCheck))) Console.WriteLine("This parameter is binded");
else Console.WriteLine("This parameter is not binded");

0
投票

您可以像这样改进您的

SetParametersAsync
版本。看评论。

    private List<string> bindedParameters = new();
    public override Task SetParametersAsync(ParameterView parameters)
    {
        // You should always do this first
        parameters.SetParameterProperties(this);

        foreach (var parameter in parameters)
        {
            bindedParameters.Add(parameter.Name);
        }
        // pass an empty set of parameters to base as you've already set them
        return base.SetParametersAsync(ParameterView.Empty);
    }
© www.soinside.com 2019 - 2024. All rights reserved.