C# Blazor-组件“;智能感知“;对于参数值

C# Blazor-组件“;智能感知“;对于参数值,c#,blazor,blazor-server-side,C#,Blazor,Blazor Server Side,我有一个Blazor组件,带有参数位置。此参数应仅接受值的Top或Bottom 是否可以为此设置“智能感知”,以便在输入位置的值时弹出一个只有这些设置的弹出窗口 位置.cs public enum Position { Top, Bottom } public class MyComponentBase : ComponentBase { [Parameter] public Position Position { get; set; } = ToastPositio

我有一个Blazor组件,带有参数
位置
。此参数应仅接受值的
Top
Bottom

是否可以为此设置“智能感知”,以便在输入
位置的值时弹出一个只有这些设置的弹出窗口


位置.cs

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

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

@inherits MyComponentBase

<div class="@PositionClass"></div>
<MyComponent Position="Position.Bottom" />
Index.razor

@inherits MyComponentBase

<div class="@PositionClass"></div>
<MyComponent Position="Position.Bottom" />

您的问题就在这里

//    here \/
Position="Position.Bottom"
对于intellisense,您正在传递一个字符串,因为您没有使用
@
符号


键入时,您应该执行
Position=“(光标在这里)”
,然后键入
@
,这样它将获得正确的intellisense。

谢谢Vencovsky,VS intellisense就是这样工作的。但我想提出不同的问题。目前,我需要向Enum
位置添加一个using语句,以便能够使用它。设置“自定义智能感知”这样的东西是否可行,所以当我键入
。。。Position=“
此自定义弹出窗口仅显示两个可用操作
顶部和底部
?要创建“自定义intellisense”,您需要。但请尝试使用Foo.Bar.placeOfEnm添加
”,然后键入
Position=“
以查看intellisense是否按您的方式工作。@imb13我在这里测试了它,看起来intellisense还不太好,速度也很慢,但您可以键入
Position=“@
,然后按
Ctrl+Space
(windows)要获取枚举,请按
查看选项。但要做到这一切,您需要已经有了枚举的使用权限。谢谢@Vencovsky。感谢您的帮助。我想我会坚持现在的状态。