是否通过输入改变了价值?

时间:2014-05-14 14:39:27

标签: wpf

我如何知道用户输入更改的任何控件的值何时更改(与鼠标或键盘交互)?

有什么建议吗?这有什么共同的方法吗?

编辑:

我正在寻找附加属性或扩展已经给定的控件或任何需要的东西,只是为了通知用户输入是否在更改时发生。例如,用户输入更改了ComboBox SelectedItem(用户可以在下拉菜单中输入文本或选择项目)

其纯粹的View事件因此我很抱歉,但不会接受针对此问题的ViewModel解决方案。

2 个答案:

答案 0 :(得分:0)

最简单的方法就是注册Binding.TargetUpdated事件,当UI端更新时触发(当ViewModel端更新时触发Binding.SourceUpdated

答案 1 :(得分:0)

在视图模型中使用具有支持字段的属性。引入第二个setter - 一个SetProp()方法 - 在ViewModel中使用。这样,您可以添加不同的行为,具体取决于调用的来源。

```

    private bool mMyProp;
    public bool MyProp
    {
        get { return mMyProp; }
        set
        {
            if (mMyProp != value)
            {
                mMyProp = value;
                // Todo: add here code specific for calls coming from the UI
                RaisePropertyChanged(() => MyProp);
            }
        }
    }

    public void SetPropFromViewModel(bool value)
    {
        if (mMyProp != value)
        {
            mMyProp = value;
            // Todo: add here code specific for calls coming from ViewModel
            RaisePropertyChanged(() => MyProp);
        }
    }