Почему нельзя использовать TargetNullValue в x:Bind?

Как сообщает MSDN, TargetNullValue:

Указывает значение, которое будет отображаться, когда исходное значение разрешается, но явно равно null.

Со старым Binding что-то вроде этого было возможно и работало:

<Grid Visibility="{Binding Something, Converter={StaticResource myconv}, TargetNullValue='Collapsed'}">

Но это невозможно с x:Bind - если мы напишем:

<Grid Visibility="{x:Bind Something, Converter={StaticResource myconv}, TargetNullValue='Collapsed'}">

мы, вероятно, получим ошибку:

TargetNullValue не может быть применен к 'Visibility', потому что его тип 'Visibility' не допускает значение NULL.

Что для меня не имеет особого смысла - почему так?


person Romasz    schedule 04.03.2017    source источник
comment
Вы должны обрабатывать нулевое значение в конвертере.   -  person Tóth Tibor    schedule 04.03.2017
comment
@TóthTibor Да, я уже обрабатываю это с помощью конвертера, это просто делает TargetNullValue бесполезным, поскольку вы не можете его использовать, когда это явно должно быть возможно.   -  person Romasz    schedule 05.03.2017


Ответы (1)


Что для меня не имеет особого смысла - почему так?

Согласно документации «{x:Bind} не хватает некоторых функций {Binding}» и, видимо, это одна из них.

По-видимому, TargetNullValue нельзя указать для целевого свойства типа value.

Но вы можете легко справиться с этим в своем конвертере, так что это должно быть большой проблемой.

Вы всегда можете сообщить об этом на UserVoice, если хотите: https://wpdev.uservoice.com/forums/110705-universal-windows-platform

person mm8    schedule 04.03.2017
comment
Вот чего я боялся, хотя это не меняет того факта, что для меня это не имеет смысла. Тем не менее, я опубликовано на UserVoice. - person Romasz; 05.03.2017