我正在使用 Extended WPF ToolKit 的 DecimalUpDown 控件(v1.7)。使用微调器控件时,该控件的行为与我预期的一样,但在直接编辑文本时则不然。这是一个基本的 MVVM WPF 应用程序,其控件绑定到名为CurrentWidth
.
在 ViewModel 中,对 执行了各种验证规则CurrentWidth
,在属性的末尾,RaisePropertyChange("CurrentWidth");
如果值未验证,它有时会保持 CurrentWidth 不变。
当使用微调控件进行更改时,所有错误检查、值恢复等都会起作用。当用户直接在框中输入文本时,验证仍然有效,但框会显示用户输入的内容。当我发送一些调试信息时,Value 属性和 Text 属性都具有正确的未修改值,但该框仍显示用户输入的值。我尝试添加一个 LostFocus 事件处理程序并调用InvalidateVisual()
发送方控件,甚至UpdateLayout()
还尝试了一个,但是在关闭控件后,用户输入的文本仍然显示。有谁知道如何让它反映实际的当前值?