【发布时间】:2012-02-15 10:12:15
【问题描述】:
用户控件是否可以在用户控件更改值时接收更新?我有一个带有保存按钮的表单,我想在值更改后立即激活它。
目前我正在使用我的视图进行此操作,但我必须在每个属性更改时添加对它的调用。这没问题,但对于编辑框,这意味着用户必须在保存按钮变为活动状态之前离开。
【问题讨论】:
标签: wpf user-controls
用户控件是否可以在用户控件更改值时接收更新?我有一个带有保存按钮的表单,我想在值更改后立即激活它。
目前我正在使用我的视图进行此操作,但我必须在每个属性更改时添加对它的调用。这没问题,但对于编辑框,这意味着用户必须在保存按钮变为活动状态之前离开。
【问题讨论】:
标签: wpf user-controls
如果您将视图绑定到视图模型,那么您可以在视图模型内设置一个标志 IsDirty,每次触发 PropertyChanged 事件时都会设置该标志
protected void FirePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
_isDirty = true;
if(handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
然后用 IsDirty 绑定你的按钮
【讨论】:
最简单的方法是创建一个 IsDirty 布尔属性,该属性在值更改时更改。 将保存按钮的 IsEnabled 属性与 IsDirty 布尔值耦合。
如果它在你想要解耦的类中,请使用事件/通知。
【讨论】: