Используйте MarkupExtension в PriorityBinding - PullRequest
0 голосов
/ 10 марта 2020

РЕДАКТИРОВАТЬ: TL / DR Вы можете использовать пользовательские расширения разметки в PriorityBinding. Скорее всего, оно подсвечивается сообщением об ошибке, и дизайнер может не показывать его во время разработки, но во время выполнения оно работает как чудо. Кажется, проблема в конструкторе XAML или каком-либо другом внутреннем компоненте.

Что ж, у меня есть определенный сценарий ios в нашем программном обеспечении, где мне нужно отобразить переведенную строку в случае, если привязка возвращает ноль. Здесь мой производственный номер установлен только в определенной точке, и до тех пор я хочу показать «Неизвестный» в переводе на язык пользователя. Для этого мы используем пользовательскую разметку, которая возвращает привязку к промежуточному объекту, который поддерживает перевод.

К сожалению, MarkupExtension наследуется BindingBase, а не наоборот. Так как PriorityBinding ожидает коллекцию BindingBase, я не могу добавить свою разметку перевода в качестве резервной привязки.

Это то, что я пробовал:

<PriorityBinding>
    <Binding Path="ProductionNumber" />
    <l:Translate Key="Unknown" Context="Common" />
</PriorityBinding>

Так кто-нибудь знает, как обойти это? Использование PriorityBinding было бы самым простым способом сделать это. Конечно, я мог бы использовать конвертер для этого, но тогда я бы исключил некоторые важные функции, реализованные в разметке, что в основном делает его бесполезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...