我有一个用户界面,用户可以在其中输入一个值,并在ViewModel中更新该值(最终写回数据库)。
如果实际输入了一个值,这可以正常工作。但是如果你想清除那个值(即把它设置为空),它似乎不起作用。
因此,例如,如果它是'狗',但我清除了该文本并“保存”,则无法识别更改。
如果输入值,我会调用“PropertyChanged”。但是如果文本被清除,并且我从文本框中按Enter或tab,则不会更新该属性。
是否有一些特殊方法可以解决这个问题,或者我只是遗漏了什么?
感谢
答案 0 :(得分:1)
应该工作......
您确定其他图层(尤其是数据库)是否接受“空”值?它可能是一个转换异常或错误被静默吃掉。
要诊断,试验不同类型的不同属性。
答案 1 :(得分:0)
正如Veer在上面的评论中指出的那样,尝试使用UpdateSourceTrigger如下检测更改文本的时间。在视图模型中设置断点,并查看在文本框中键入时是否捕获更改事件。
<TextBox Text="{Binding Path=Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
答案 2 :(得分:0)
如果数据类型为int,则不会更新该属性。 将属性设置为字符串将在清除时更新属性。