我有一个早就应该升级的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
发布于 2020-12-31 07:08:29
WinForms的PropertyGrid相当高级,也支持编辑。Blazor目前还没有正式的组件。
下面的GIF展示了我在使用中制作的一个组件。目前支持检查嵌套结构对象的基本场景。您还不能使用组件编辑属性。
更新:属性网格现在更加精简,并添加了编辑器(由于编辑功能本身尚未添加,它们将变为只读。屏幕截图:)


我已经为Blazor做了一个简单的PropertyGrid组件,网址如下:
git克隆
Razor代码库都有一个GitHub组件库项目和一个使用该组件示例Blazor Server项目(带有客户端),因此它应该很容易测试和改进。我可能会在某个时候向此控件添加编辑功能。
Simple Blazor Property Grid component @ Github
下面的屏幕截图显示您可以检查嵌套级别的对象。
Github存储库还显示了开始创建属性网格控件所需的代码。我可能会为它添加编辑功能,你可以分叉它,因为它只是一个演示项目,我今天花了几个小时在上面。免责声明:请不要在生产环境中使用此组件,这只是一个小小的业余爱好小项目。

https://stackoverflow.com/questions/60050886
复制相似问题