在Silverlight XAML中未更新数据绑定可为空的值

use*_*358 5 data-binding silverlight xaml

在我的MVVM项目中,我有两个文本框,其中一个文本框绑定到我的对象的可空整数字段,另一个绑定到字符串字段.当视图加载时,如果我向绑定到字符串属性的文本框输入任何值,我可以看到它的值更新为对象的字符串属性.

但是,当我向文本框输入一个绑定到我的对象的可空整数字段的值时,就会出现问题.如果它是一个正确的整数值,则值会更新.如果我在文本框中放置一个字母数字字符串绑定到我的对象的可空整数字段,或者我只是将其留空,那么我的对象的可空整数字段不会更新.它仍然保留了之前设置的内容.

例如.如果我在数字文本框中输入数字'7',它将更新为7.现在如果我将其从'7'更改为'7a'或'a7'或'asd'或将其留空.该值仍然保持为7,这是较早的值.

除了更改可空类型之外,是否有任何解决此问题的方法?

谢谢你的时间...

dec*_*one 2

这里的问题是,每当您输入empty stringalphabet valuesTextBox绑定到 时Nullable<Int32>,都不会设置 nullable int 的值。

在这种情况下,将字符串值转换为整数值时绑定会失败。失败后,它不会将值设置为 null,而是保留旧值不变。您可以通过调试来确保这种情况发生。

解决这个问题你可以做的是创建一个转换器。此转换器尝试将字符串值转换为 int,如果失败,则返回 null,该值将设置为可空 int 的值。