在WPF中将文本框设置为“无”但MV值未更新

时间:2010-06-22 19:56:13

标签: wpf textbox

我有一个用户界面,用户可以在其中输入一个值,并在ViewModel中更新该值(最终写回数据库)。

如果实际输入了一个值,这可以正常工作。但是如果你想清除那个值(即把它设置为空),它似乎不起作用。

因此,例如,如果它是'狗',但我清除了该文本并“保存”,则无法识别更改。

如果输入值,我会调用“PropertyChanged”。但是如果文本被清除,并且我从文本框中按Enter或tab,则不会更新该属性。

是否有一些特殊方法可以解决这个问题,或者我只是遗漏了什么?

感谢

3 个答案:

答案 0 :(得分:1)

应该工作......

您确定其他图层(尤其是数据库)是否接受“空”值?它可能是一个转换异常或错误被静默吃掉。

要诊断,试验不同类型的不同属性。

答案 1 :(得分:0)

正如Veer在上面的评论中指出的那样,尝试使用UpdateSourceTrigger如下检测更改文本的时间。在视图模型中设置断点,并查看在文本框中键入时是否捕获更改事件。

 <TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

答案 2 :(得分:0)

如果数据类型为int,则不会更新该属性。 将属性设置为字符串将在清除时更新属性。