В моем универсальном приложении, если я ввожу значение в текстовое поле, введенное значение не переносится в объект подстановки. что происходит только с значениями с нулевым значением, как только я делаю переменную недействительной, она работает как ожидалось.UWP - Текстовое поле Связывание с nullabel int не работает
Что я нашел странным, если я установил TargetNullValue = '' в мою привязку и очистил текстовое поле, тогда будет вызван объект подкачки, и значение будет установлено как null, как ожидается, но если я затем введу новое значение в текстовое поле, значение которого не будет передано в фоновый объект.
Моя проблема очень похожа на этот, я думаю: UWP - Bind TextBox.Text to Nullable<int>
Разница только в том, что я не получаю сообщение об ошибке, это просто ничего не произойдет. Я даже попробовал обходное решение для конвертера. вызывается преобразователь, но значение, возвращаемое преобразователем, не будет установлено в объект.
Я нашел много сообщений, подобных тому, которое я связал выше, но во всех случаях возвращались какие-то сообщения об ошибках. опять же, в моем случае это просто ничего не происходит, как будто нет привязки.
Это мой код:
<Grid.Resources>
<utils:NullableValueConverter x:Key="NullableIntConverter" />
</Grid.Resources>
<TextBox Text="{Binding Level, Mode=TwoWay, Converter={StaticResource NullableIntConverter}, TargetNullValue=''}" PlaceholderText="Level"/>
Поддерживающий объект:
public class Unit
{
public int? Level { get; set; }
}
Преобразователь:
public class NullableValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return string.IsNullOrEmpty(value.ToString()) ? null : value;
}
}
Лучший пример, когда копирование и прошлое прошло ужасно. Я должен был лучше посмотреть на конвертер, который я скопировал из другого примера, и тот факт, что он возвращает строку, когда мне нужен int. Большое спасибо! – gofrm