【发布时间】:2014-10-18 08:21:21
【问题描述】:
我们正在构建一个新应用程序,其中一项要求是“没有保存按钮”。因此,每次更改属性都会被保存。为了减少数据库事务的数量,我们只想在失去焦点后保存 TextBox 文本。
我们的问题是验证, 我们通常使用这样的东西:
[Required(AllowEmptyStrings = false, ErrorMessage = "Email is required")]
[EmailAddress(ErrorMessage = "This is not valid email address")]
public string UserEmail
{
get { return userEmail; }
[DebuggerNonUserCode]
set
{
Validator.ValidateProperty(value, new ValidationContext(this, null, null)
{ MemberName = "UserEmail" }
);
userEmail = value;
NotifyOfPropertyChange(() => UserEmail);
}
}
这只是为了
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
但在新的解决方案中 - 我们只想在文本框失去焦点时输入“UserEmail”属性的设置器。但是验证呢,它应该在每次按键时都起作用,如何实现呢?
【问题讨论】:
-
归结为您想要 2 个不同的事件。我认为您需要设置一个 Caliburn 消息。
标签: c# wpf mvvm caliburn.micro