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