Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定导致WPF绑定的原因';将事件的值更改为fire_Wpf_Binding - Fatal编程技术网

确定导致WPF绑定的原因';将事件的值更改为fire

确定导致WPF绑定的原因';将事件的值更改为fire,wpf,binding,Wpf,Binding,看起来ValueChanged和SourceUpdate事件只需设置DataContext即可触发。有人知道一种方法来判断值的改变是否来自于用户的交互吗 一个简单的例子是在WPF表单上有一个“保存”按钮,该按钮在用户实际更改数据之前处于禁用状态。由于ValueChanged和SourceUpdated事件都是在设置DataContext时触发的,因此我不能简单地启用“Save”按钮,而不首先确定触发事件的实际原因 提前感谢。在不了解有关实现(UI架构等)的更多细节的情况下,我只能提供一般性建议

看起来ValueChanged和SourceUpdate事件只需设置DataContext即可触发。有人知道一种方法来判断值的改变是否来自于用户的交互吗

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


提前感谢。

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

  • 如果您有演示文稿模型,请将“保存”按钮的启用状态绑定到PM上的属性,该属性受对PM上其他属性所做更改的控制

  • 如果直接针对代码隐藏进行编码,请推迟绑定保存按钮,直到设置DataContext之后

  • 您需要记住的一件事是,设置DataContext就像更改所有控件的数据绑定,而您没有显式地设置源代码。依赖DataContext可以让您简单地指定路径,但您必须考虑这种级联行为