【问题标题】:Is there a Blazor equivalent to WinForm's PropertyGrid?是否有与 WinForm 的 PropertyGrid 等效的 Blazor?
【发布时间】:2020-05-19 21:32:06
【问题描述】:

我对 WinForms 应用程序的 UI 进行了早该升级,并将使其成为 Blazor 应用程序。旧版应用程序配置是使用 WinForm 的 PropertGrid 进行的。是否有将设置类转换为 Blazor 表单的等效 Blazor 组件或最佳实践?

例如

class MySettings{

public string Name {get;set;}
public int Age {get;set;}
public string Address {get;set;}

// 1000 other settings of int, string, enums etc

}

有没有一种方法可以将 MySettings 呈现为一个漂亮的 Blazor 表单,或者一个 Blazor 组件,无需在 Razor 页面中设计表单即可使用,其中数千个输入绑定到 MySettings 中的每个属性。

这是使用验证的长格式方法:

<EditForm Model="@_mySettingsModel" OnValidSubmit="HandleValidSubmit">
    <DataAnnotationsValidator />
    <ValidationSummary />

    <InputText id="name" @bind-Value="_mySettingsModel.Name" />
    <InputText id="age" @bind-Value="_mySettingsModel.Age" />
    <InputText id="address" @bind-Value="_mySettingsModel.Address" />

    <button type="submit">Submit</button>
</EditForm>

@code {
    private MySettings _mySettingsModel = new MySettings();

    private void HandleValidSubmit()
    {
        Console.WriteLine("Saving Settings...");
    }
}

参考:https://docs.microsoft.com/en-us/aspnet/core/blazor/forms-validation?view=aspnetcore-3.1

【问题讨论】:

  • 不,这不存在。而且它不在路线图上。
  • 我认为您必须使用反射构建自己的。
  • 我用反射构建了一个。但是也应该添加编辑功能。至少它现在支持嵌套层次的对象。

标签: blazor


【解决方案1】:

WinForms的PropertyGrid比较先进,也支持编辑。 Blazor 还没有为此提供官方组件。

下面的 GIF 显示了我在使用中制作的一个组件。它目前支持检查具有嵌套结构的对象的基本场景。您还不能编辑组件的属性。

更新:属性网格现在更加精简并添加了编辑器(由于尚未添加编辑功能本身,它们已变为只读。屏幕截图:)

我在以下 repo url 为 Blazor 制作了一个简单的 PropertyGrid 组件:

git clone https://github.com/toreaurstadboss/BlazorPropertyGrid/tree/main/BlazorPropertyGrid

GitHub 存储库都有一个 Razor 组件库项目和一个使用该组件的示例 Blazor Server 项目(带有客户端),因此应该很容易测试和改进。 我可能会在某个时候为这个控件添加编辑功能..

Simple Blazor Property Grid component @ Github

下面的屏幕截图显示您可以检查具有嵌套级别的对象。

Github 存储库还显示了开始创建属性网格控件所需的代码。我可能会为它添加编辑功能,你可以分叉它,因为它只是我今天花了几个小时完成的一个演示项目。免责声明:请勿在生产环境中使用此组件,它只是一个小爱好迷你项目。

【讨论】:

    猜你喜欢
    • 2018-11-09
    • 2014-12-19
    • 2021-04-30
    • 2010-09-08
    • 2013-02-04
    • 2017-01-01
    • 2012-11-21
    • 2018-04-30
    • 2011-03-03
    相关资源
    最近更新 更多