我是 MAUI 新手,具有 Xamarin.Forms 的基本知识
我想向 MAUI 中的 Entry 控件添加底部边框(和边框刻度)。
在 Xamarin.Forms 上,我们必须创建一个自定义控件,然后为每个平台创建一个渲染器。
在发布此消息之前,我在互联网上进行了研究。它涉及处理程序,我的印象是它只允许基本修改(更改背景颜色等......)。
我对所有这些信息有点困惑,如果有人能启发我,我将不胜感激。
我实际上正在试验 Blazor WebAssembly。
除了一件事之外,一切都很好。
我的想法是我想共享相同的组件来创建或编辑项目。
组件的名称是 CreateOrEdit.razor,我有两条路线:
@page "/master/maker/create"
@page "/master/maker/{id:int}"
Run Code Online (Sandbox Code Playgroud)
Id 被捕获并存储在属性中:
[Parameter]
public int Id { get; set; }
Run Code Online (Sandbox Code Playgroud)
我还有一个 getter 属性来确定我们是否处于编辑或创建页面。
public bool IsEditPage { get => Id > 0; }
Run Code Online (Sandbox Code Playgroud)
并像这样使用到视图中
@if (IsEditPage)
{
<Button Clicked="OnEditButtonClicked"
Color="@(m_EditMode ? Color.Danger : Color.Primary)" Class="mb-2">
@(m_EditMode ? "Save" : "Edit")
</Button>
<Row>
<Column ColumnSize=" ColumnSize.Is2" Class="my-auto">
<span>ID</span>
</Column>
<Column ColumnSize="ColumnSize.Is8">
<span>@Id</span>
</Column>
<Column ColumnSize="ColumnSize.Is2"></Column>
</Row>
}
else
{
<Button Clicked="OnCreateButtonClicked" Color="Color.Danger" Class="mb-2">Create</Button>
}
Run Code Online (Sandbox Code Playgroud)
如果我们处于编辑模式,我们会获得项目的 ID 并显示“编辑”按钮。然后,如果我们单击“编辑”按钮,则可以编辑表单上的元素。“编辑”按钮更改为“保存”。然后数据被发送到API。
在创建模式下,会显示“保存”按钮。只需点击它即可将数据发送到 API。我打算添加验证,但问题不在这里。
问题如下: …
我实际上正在 Blazor 项目 (0.8.0) 中进行表单验证。
我创建了一个名为 InputValidation 的组件。该组件接收许多参数以根据我们可以设置的条件测试属性值是否正确。
@using System.Linq.Expressions;
@typeparam TItem
@if (!Valid)
{
<span id="@(Id)_validation" class="form-text text-danger">@Message</span>
}
@functions {
[Parameter]
string Id { get; set; }
[Parameter]
TItem Property { get; set; }
[Parameter]
Expression<Func<TItem, bool>> On { get; set; }
[Parameter]
string Message { get; set; }
[Parameter]
bool ActiveOnLoad { get; set; } = true;
internal bool Valid { get; set; }
bool Activated;
protected async override Task OnInitAsync()
{
Activated = ActiveOnLoad;
}
protected …Run Code Online (Sandbox Code Playgroud)