将UI更改与代码隐藏更改区分开来

时间:2010-05-23 09:30:34

标签: wpf data-binding

就像标题所说的那样,我正在尝试在我的应用程序中使用一种方法来区分变量的来源,无论是UI还是代码隐藏。

我的问题是我需要在属性更改其值后触发某些操作,但我只需要在更改来自UI时执行此操作,否则我不想执行该操作。我有一些麻烦,因为,例如当一个复选框(双向绑定),更改状态,我的binded属性得到更新,然后我使用checked和uncheked事件来触发该操作。问题是当我更改属性时codebehind它也触发了那些事件,我不希望这样。现在,我正在使用一个标志来启用或不启用事件处理程序中的操作,但我觉得这不是一个好主意。

任何吸烟或想法? 我正在考虑只使用单向绑定并使用命令控制我自己的一切。

1 个答案:

答案 0 :(得分:0)

看起来您的模型和控制器之间存在一些混淆。如果对模型的更改来自用户,则不应该存在任何重要的情况。如果您想要确认消息,则用户进行更改,然后不要将视图控件直接绑定到模型,而是让控制器响应事件。

这样,如果将控件更改为与模型相同,则更改是内部的,并且不需要确认,但如果用户更改了控件,则控件状态与模型不同,并且可以显示确认。