1
4
tl;dr:你要做的是数据验证。这是一个已解决的问题:您可以使用
您还可以为组合框编写一个ItemContainerStyle来禁用无效项,或者您的viewmodel可以更新组合框项集合以排除当前无法选择的任何项。我更喜欢这种方法:而不是“在这里,你可以选择这些选项中的任何一个——BZZZT,LOL,错误的选择!”,只向他们提供他们所需要的选项似乎更为友好 可以 选择 如果你在他们做出选择后知道哪些选项是有效的,你几乎可以肯定提前知道。
这是正确的。组合框仍在处理从用户那里得到的更改,直到setter完成一段时间后才能完成。组合框将忽略其当前正在更新的属性上的任何PropertyChanged事件。这是故意的。
标准的解决方法是使用
正如你所说, “不是最好的行为” . 最好编写以下验证: 拒绝 首先是错误的值,而不是像上面那样编写奇怪的解决方法。 |