【问题标题】:Blazor - Component "intellisense" for parameter valueBlazor - 参数值的组件“智能感知”
【发布时间】:2020-03-24 23:16:33
【问题描述】:

我有一个带有参数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" />

【问题讨论】:

    标签: c# blazor blazor-server-side


    【解决方案1】:

    你的问题来了

    //    here \/
    Position="Position.Bottom"
    

    对于智能感知,您正在传递一个字符串,因为您没有使用 @ 符号。

    输入时,你应该先输入Position="(CURSOR IS HERE)",然后输入@,这样它就会得到正确的智能感知。

    【讨论】:

    • 感谢 Vencovsky,VS intellisense 就是这样工作的。但我想以不同的方式提出这个问题。目前我需要在 Enum Position 中添加一个 using 语句才能使用它。是否可以设置类似“自定义智能感知”的东西,所以当我输入 ... Position=" 并且这个自定义弹出窗口只显示两个可用的选项 Top &amp; Bottom 时?
    • 要创建“自定义智能感知”,您需要 create a vs extension。但是请尝试添加@using Foo.Bar.PlaceOfEnum,然后输入Position=" 以查看智能感知是否按您想要的方式工作。
    • @imb13 我在这里测试了一下,好像智能感知还不是很好,也很慢,但是你可以输入Position="@,然后按Ctrl + Space(windows)获取枚举,然后按. 查看选项。但要做到这一切,您需要已经使用枚举。
    • 谢谢@Vencovsky。感谢你的帮助。我想我会坚持现在的样子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 1970-01-01
    相关资源
    最近更新 更多