嗨芽,
我有一个Nullable int属性绑定到TextBox,它在运行期间实现了INotifyPropertyChanged,当我更改TextBox的值并且松散焦点时。物业的Setter没有击中。 : - (
任何想法??!
BTW,Yeah BindingMode设置为TwoWay
答案 0 :(得分:0)
我可能会考虑将TextBox绑定到字符串属性而不是nullable int,因为那里可能存在某种绑定错误。然后你总是可以这样做:
int outValue;
int? nullableOutValue;
nullableOutValue = int.TryParse(stringValue, out outValue) ? (int?)outValue : null;
然后将您的字符串属性转换为正确的值。您可以在属性的setter中执行此操作,并在需要输入int时为非法值提供错误检查。
答案 1 :(得分:0)
我不确定这是否适用于WinRT,但在WPF中你需要在绑定中指定TargetNullValue
:
<TextBox Text="{Binding myNullableInt, TargetNullValue={x:Static sys:String.Empty}}"/>
这样,当用户删除文本时,它绑定的属性将更新为null
。请查看此SO question以供参考。
更新:
不幸的是,WinRT绑定中没有TargetNullValue
。因此,您可以选择使用@ TylerD87的方法,还是创建并使用转换器将空字符串转换为空值,如here所述。