清除时文本框绑定未刷新

gou*_*oul 1 c# wpf canexecute

我有一个表单,其中包含一些绑定到某个对象属性的 TextBox:

<Label Content="Car Id:"/>
<TextBox Text="{Binding Path=Car.CarId, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

我有一个“确定按钮”映射到像这样的 CanExecute() 命令(不显示事件部分,但确保它有效):

private bool CanExecute()
{
    return _vm.Model.Car.CarId !=0;
}
Run Code Online (Sandbox Code Playgroud)

问题:

  • 如果我将“汽车 ID”字段设置为某项,则该按钮将启用。
  • 如果我删除汽车 ID 的值,则不会发生任何情况。调试了一下,Car.CarId居然还是我之前设置的值!

预先感谢您对此的提示!

bli*_*eis 5

来自 stackoverflow 上的另一个答案

int 属性无法工作。是的,那么你的设置器就不会被调用,甚至转换器也不会被调用。如果您想要这样的行为,请在视图模型中使用字符串属性,并根据需要将该值转换为模型中的 int 属性

但您可以将 Nullable int 与 TargetNullValue='' 一起使用

<TextBox Text="{Binding MyNullableInt, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, TargetNullValue=''}"/>
Run Code Online (Sandbox Code Playgroud)