处理空数字绑定

Yoa*_*oav 5 c# data-binding wpf

我有一个WPF应用程序,int其视图模型中的属性如下所示:

private int _port;
public int Port
{
    get { return _port; }
    set { SetProperty(ref _port, value); }
}
Run Code Online (Sandbox Code Playgroud)

我的观点是这样的:

<TextBox Text="{Binding Port, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)

我的问题是,每当用户清除文本框文本时,我都会收到以下错误:

值 '' 无法转换。

这会导致绑定不更新属性,因此我为命令CanExecute逻辑设置的任何规则都不适用。
有什么方法可以覆盖此行为(无需将属性的类型更改为Nullable)?

更新
我尝试使用FallbackValue或转换器,但这 2 将值更改为某些预定义的默认值,这在我的情况下不适用。

Den*_*nis 0

其中一种方法是使用旨在处理数字的控件,例如IntegerUpDown

<xctk:IntegerUpDown Value="{Binding MyValue}"/>
Run Code Online (Sandbox Code Playgroud)

另一种方法是编写IValueConverter在绑定中使用。