我一直在探索Caliburn Micro MVVM框架,只是为了体验一下它的感觉,但我遇到了一个小问题。我有一个绑定到ViewModel上的字符串属性的TextBox,并且我希望当TextBox失去焦点时更新该属性。
通常情况下,我会通过将UpdateSourceTrigger设置为LostFocus来实现此目的,但是我在Caliburn中没有找到任何方法来做到这一点,因为它已经自动为我设置了属性绑定。目前,每次TextBox的内容发生更改时,该属性都会被更新。
我的代码非常简单,例如这是我的VM:
通常情况下,我会通过将UpdateSourceTrigger设置为LostFocus来实现此目的,但是我在Caliburn中没有找到任何方法来做到这一点,因为它已经自动为我设置了属性绑定。目前,每次TextBox的内容发生更改时,该属性都会被更新。
我的代码非常简单,例如这是我的VM:
public class ShellViewModel : PropertyChangeBase
{
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
NotifyOfPropertyChange(() => Name);
}
}
}
在我的视图中,我有一个简单的文本框。
<TextBox x:Name="Name" />
如何使名称属性仅在文本框失去焦点时更新,而不是每次属性更改时都更新?