gpt4 book ai didi

silverlight - 在 Silverlight 中单击按钮时如何验证输入?

转载 作者:行者123 更新时间:2023-12-01 05:42:47 24 4
gpt4 key购买 nike

我使用 DataAnnotation 来验证输入控件。但是 ValidatesOnExceptions 仅在用户在文本框中键入内容并按 Tab 时才有效。 (基本上在 Lostfocus 事件上)。

但如果用户从未在文本框中输入任何内容并单击提交。这是行不通的。像 ASP.NET Page.IsValid 属性一样,我可以使用 Silverlight 中的任何属性或方法来验证 UI 上的所有控件吗?

最佳答案

借助 Terence 提供的 URL,我为您准备了以下解决方案。
这可以用来确保在服务调用之前设置所有属性。

public class PersonViewModel : EntityBase 
{
private readonly RelayCommand saveCommand;

public PersonViewModel(IServiceAgent serviceAgent)
{
saveCommand = new RelayCommand(Save) { IsEnabled = true };
}

public RelayCommand SaveCommand // Binded with SaveButton
{
get { return saveCommand; }
}

public String Name // Binded with NameTextBox
{
get
{
return name;
}
set
{
name = value;
PropertyChangedHandler("Name");
ValidateName("Name", value);
}
}

public Int32 Age // Binded with AgeTextBox
{
get
{
return age;
}
set
{
age = value;
PropertyChangedHandler("Age");
ValidateAge("Age", value);
}
}

private void ValidateName(string propertyName, String value)
{
ClearErrorFromProperty(propertyName);
if (/*SOME CONDITION*/)
AddErrorForProperty(propertyName, "/*NAME ERROR MESSAGE*/");
}

private void ValidateAge(string propertyName, Int32 value)
{
ClearErrorFromProperty(propertyName);
if (/*SOME CONDITION*/)
AddErrorForProperty(propertyName, "/*AGE ERROR MESSAGE*/");
}

public void Save()
{
ValidateName("Name", name);
ValidateAge("Age", age);
if (!HasErrors)
{
//SAVE CALL TO SERVICE
}
}
}

关于silverlight - 在 Silverlight 中单击按钮时如何验证输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com