【发布时间】:2019-11-22 11:41:49
【问题描述】:
我确定这是一个愚蠢的问题,但我现在无法弄清楚。
假设我有一个具有 3 个布尔属性的视图模型,它们以某种方式连接。因此,如果我设置 bool1 = true,则 bool2/3 设置为 false。如果我将 bool2 设置为 false,则会发生不相关的事情,如果我将 bool3 设置为 true,则 bool1 会设置为 true。
我只是随机输入的,假设没有stackoverflow异常。
我的问题是,如果 bool2 onChange 代码被其他布尔值设置,我该如何阻止它触发? 它们都相互链接,我无法只触发“bool 2 = false”,而在 setter 或 onChangeHandler 触发中也没有任何逻辑。
现在我通过在我的视图模型“AllowChangeFiring”中创建另一个标志并像这样包装我的所有逻辑来解决这个问题。
if(AllowChangeFiring){
AllowChangeFiring = false;
bool 2 = false;
...
}
AllowChangeFiring = true;
但这不能是处理这种情况的方法吗?我一定遗漏了一些明显的东西吧?
【问题讨论】:
-
我一定遗漏了一些明显的东西吧? 是的,事实上,如果不改变 setter 是不可能的