我有一个像这样的视图模型类设置:
public partial class PgViewModel : ObservableValidator
现在在这个类中,我有一些像这样的属性设置:
[Required]
public string? dbOwner { get; set; }
[Required]
[EmailAddress]
public string? dbEmail { get; set; }
[Required]
[MinLength(8)]
public string? dbPasswd { get; set;}
视图模型中还有一个方法,如下所示:
[RelayCommand]
public void SaveDb()
{
ValidateAllProperties();
if (HasErrors)
{
var err = GetErrors(dbOwner);
Shell.Current.DisplayAlert("Error", $"{err}", "OK");
}
else
Shell.Current.DisplayAlert("Msg", "Everything is OK.", "OK");
}
现在,在内容页面的 xaml 代码中,我有一些条目控件数据绑定到视图模型类中的属性,还有一个按钮也将数据绑定到 SaveDb 方法。现在,当我运行程序时,我故意将绑定到 dbOwner 的条目控件留空,当我单击按钮时,显示警报显示:
所以我的问题是,如何将这个“错误消息”转换为外行人可读的语言?
获取消息的简单方法
string.Join(',', err.Select(x => x.ErrorMessage).ToList());
您还有成员名称属性数组,因此可能需要将其包含在类似的内容中
var allErrors = err.Select(x => $"Members: {string.Join(',', x.MemberNames)} have errored with message: {x.ErrorMessage}").ToList();
var displayErrors = string.Join(',', allErrors);