Ответ 1
Использование:
{Binding TargetNullValue=''}
Model
public int? SizeLength { get; set; }
XAML
<TextBox Text="{Binding [someViewModel].SizeLength, Mode=TwoWay}"></TextBox>
Как только пользователь попытается выполнить backspace или delete значение в этом textbox
, сообщение Value '' cannot be converted
.
Могу ли я узнать, что с ним не так?
Использование:
{Binding TargetNullValue=''}
Так как интегрированные преобразователи из строки в single/double/int WPF ожидают, что строка будет анализироваться, они не будут по умолчанию пустым значением равным 0, потому что вы не всегда будете хотеть этого поведения, так как оно написано в MSDN
Возвращает или задает значение, которое используется в целевом объекте, когда значение источник имеет значение null.
вы используете это, чтобы определить свое значение по умолчанию для ввода с нулевым значением:
{Binding TargetNullValue=''}
Вам нужно добавить ссылку mscorlib в свой XAML, Nullable или? в вашей опоре и используйте TargetNullValue со значением "", как сказал Элиос.
xmlns:sys="clr-namespace:System;assembly=mscorlib"
public Nullable<int> Prop { get; set; }
{Binding prop, TargetNullValue=''}