每当控件在WPF中更改值时更新父级

时间:2012-02-15 10:12:16

标签: wpf user-controls

每当用户控件更改值时,用户控件是否可以接收更新?我有一个带有保存按钮的表单,我想在值更改后立即激活它。

目前我正在使用我的View查看,但我必须在每个属性更改时添加一个调用。这没关系,但是对于编辑框,这意味着用户必须在保存按钮变为活动状态之前跳过标签。

2 个答案:

答案 0 :(得分:1)

最简单的方法是创建一个IsDirty布尔属性,每当更改值时都会更改该属性。 将保存按钮的IsEnabled属性耦合到IsDirty布尔值。

如果它在一个类中你想要解耦,请使用事件/通知。

答案 1 :(得分:1)

如果将视图绑定到视图模型,那么在视图模型中可以有一个标志IsDirty,每次触发PropertyChanged事件时都会设置该标志

    protected void FirePropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        _isDirty = true;
        if(handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propertyName));
        }
    }

然后用IsDirty

绑定你的按钮