gpt4 book ai didi

c# - 如何根据另一个字段的值使一个字段成为必填字段

转载 作者:行者123 更新时间:2023-12-03 10:25:49 25 4
gpt4 key购买 nike

我有一个 ViewModel,其中包含一些具有数据注释的公共(public)属性,如下所示:

[Required]
public string PointOfContact { get; set; }

哪个工作得很好。我已经准备好所有必要的管道,以便在验证失败时显示正确的控件格式和错误消息。

但是,我有一些根据复选框的值有条件地需要的字段。例如:
public bool Briefing { get; set; }
public DateTime BriefingTime { get; set; }

在这种情况下,我只希望在选中绑定(bind)到 Briefing 属性的复选框时需要 BriefingTime。 BriefingTime 的可见性已经绑定(bind)到 Briefing,所以我只需要在选中复选框时让它具有通常的必需行为。

有没有一种开箱即用的方法,还是我需要编写自己的数据注释类?这样的类(class)会是什么样子?

最佳答案

您可以编写自己的自定义 ValidationAttribute :

public class BriefingTimeRequiredAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var model = (MyModel)validationContext.ObjectInstance;
if (model.Briefing && !model.BriefingTime.HasValue)
{
return new ValidationResult("BriefingTime is required.");
}
return ValidationResult.Success;
}
}

关于c# - 如何根据另一个字段的值使一个字段成为必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53072933/

25 4 0
文章推荐: c# - 在 UWP、MVVM 中实现周期性进程
文章推荐: c# - 指定的强制转换不是FreshMvvm Xamarin中的无效异常
文章推荐: c# - 将 SelectedItem 传递给 DataTemplate 中 UserControl 的 ViewModel
文章推荐: c# - 来自列表 的组合框 DisplayMemberPath