Blazor - 为参数值提供组件 "intellisense"

3
我有一个带有参数Position的Blazor组件。该参数应仅接受值TopBottom
是否可以为此设置"智能感知",以便在输入Position的值时,弹出一个只有这些设置的窗口?

Position.cs

public enum Position
{
    Top,
    Bottom
}

MyComponent.razor

@inherits MyComponentBase

<div class="@PositionClass"></div>

MyComponent.razor.cs

public class MyComponentBase : ComponentBase
{
    [Parameter] public Position Position { get; set; } = ToastPosition.TopRight;

    protected string PositionClass { get; set; } = string.Empty;
]

Index.razor

<MyComponent Position="Position.Bottom" />
1个回答

2
你的问题在这里。
//    here \/
Position="Position.Bottom"

对于智能感知,你正在传递一个字符串,因为你没有使用@符号。
在输入时,你应该做Position="(光标在这里)",然后键入@,这样它就会获得正确的智能感知。

谢谢Vencovsky,VS智能感知是这样工作的。但我想用不同的方式提问。目前,我需要添加一个using语句到枚举“Position”中才能使用它。是否可以设置类似于“自定义智能感知”的东西,这样当我输入“... Position =”时,这个自定义弹出窗口会显示只有两个可用选项:“Top和Bottom”? - imb13
1
要创建“自定义智能感知”,您需要创建VS扩展。但是,尝试添加@using Foo.Bar.PlaceOfEnum,然后键入Position=",以查看智能感知是否按照您的要求工作。 - Vencovsky
1
@imb13 我在这里测试了一下,看起来智能感知还不够好,而且速度也比较慢,但你可以输入 Position="@ 然后按 Ctrl + Space(Windows)来获取枚举,然后按 . 来查看选项。但是要做到这一点,你需要已经使用了该枚举。 - Vencovsky
1
谢谢@Vencovsky。感谢你的帮助。我想现在我会坚持现状。 - imb13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接