【问题标题】:Determing what caused a WPF binding's ValueChanged event to fire确定导致 WPF 绑定 ValueChanged 事件触发的原因
【发布时间】:2009-06-15 23:06:33
【问题描述】:

看来 ValueChanged 和 SourceUpdated 事件只需通过设置 DataContext 即可触发。有谁知道如何判断更改的值是否实际上来自某些用户交互?

一个简单的示例是在 WPF 表单上设置一个“保存”按钮,该按钮在用户实际更改数据之前处于禁用状态。由于在设置 DataContext 时 ValueChanged 和 SourceUpdated 事件都会触发,所以我不能简单地启用“保存”按钮而不首先确定实际导致事件触发的原因。

提前致谢。

【问题讨论】:

    标签: wpf binding


    【解决方案1】:

    在不了解您的实现的更多细节(您的 UI 架构等)的情况下,我只能提供一般性建议。

    1. 如果您有一个演示模型,请将“保存”按钮的启用性绑定到您的 PM 上的某个属性,该属性受对您的 PM 上其他属性所做的更改的控制。

    2. 如果您的编码直接针对您的代码隐藏,请将保存按钮的绑定推迟到您设置 DataContext 之后。

    您要记住的一件事是,设置 DataContext 就像更改所有未显式设置 Source 的控件的 DataBinding。依靠 DataContext 让您简单地指定路径,但您必须考虑这种级联行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 2015-05-22
      • 2013-10-06
      • 1970-01-01
      • 2019-12-14
      • 2019-06-15
      • 2018-10-30
      相关资源
      最近更新 更多