【发布时间】:2015-10-29 09:55:33
【问题描述】:
我的 View-Model 中有一个 WPF 应用程序,其中包含一个 int 属性,如下所示:
private int _port;
public int Port
{
get { return _port; }
set { SetProperty(ref _port, value); }
}
我的观点是这样绑定的:
<TextBox Text="{Binding Port, UpdateSourceTrigger=PropertyChanged}" />
我的问题是,每当用户清除文本框文本时,我都会收到以下错误:
值 '' 无法转换。
这会导致绑定不更新属性,因此我为命令 CanExecute 逻辑设置的任何规则都不适用。
有没有办法覆盖这种行为(不将属性类型更改为Nullable)?
更新
我尝试使用FallbackValue 或转换器,但这2 将值更改为一些预定义的默认值,这在我的情况下不适用。
【问题讨论】:
-
清除文本框后,“值”将为空或 null,因此在解析“值”之前需要进行检查,例如 string.IsNullOrWhitespace(value.ToString( ))? 0:值
-
@Jegan:OP 应该把这个检查放在哪里?
标签: c# wpf data-binding