Я хотел бы создать свой собственный MarkupExtension
(как Binding
, TemplateBinding
...)Пользовательского MarkupExtension в UWP
Как я могу это сделать для Универсального приложения, как я сделал в WPF?
Я хотел бы создать свой собственный MarkupExtension
(как Binding
, TemplateBinding
...)Пользовательского MarkupExtension в UWP
Как я могу это сделать для Универсального приложения, как я сделал в WPF?
У меня печальное, но нет. UWP не в настоящее время поддерживает пользовательские расширения разметки.
В некоторых случаях вы можете обойти это с помощью переплетов и конвертеров. Например, чтобы использовать строку ресурса (не используя x:Uid
), у меня есть конвертер, которому фактически не нужно значение, а только параметр (идентификатор ресурса).
Например, я мог бы связать следующим образом:
<TextBlock
Text="{x:Bind Language, Mode=OneWay, Converter={StaticResource Localize}, ConverterParameter=MyResourceId}"
/>
(Это связывание не нужен путь, но я связываю с Language
все равно, что позволяет переключать языки на лету.)
More about the LocalizeConverter
here.
Но так или иначе. Если бы я делал WPF, это было бы расширением разметки. Binding
само по себе является, разумеется, расширением разметки, так что пока вы можете работать в пределах своих ограничений, это возможное обходное решение.
EDIT
Я просто хочу, чтобы выделить ссылку Clemens дал в своем комментарии к ОП:
Вы видите [это] (https: //wpdev.uservoice. ком/форумы/110705-универсальные витрины-платформа/предложения/7232264-адд-разметка-расширения-к-и-повышения-WinRT-XAML)? – Clemens
Нет, я этого не делал. Уже проголосовали. Спасибо! – SuperJMN
Поздравляем, вы поняли. –