2016-12-20 11 views
3

Я хотел бы создать свой собственный MarkupExtension (как Binding, TemplateBinding ...)Пользовательского MarkupExtension в UWP

Как я могу это сделать для Универсального приложения, как я сделал в WPF?

+3

Вы видите [это] (https: //wpdev.uservoice. ком/форумы/110705-универсальные витрины-платформа/предложения/7232264-адд-разметка-расширения-к-и-повышения-WinRT-XAML)? – Clemens

+1

Нет, я этого не делал. Уже проголосовали. Спасибо! – SuperJMN

+1

Поздравляем, вы поняли. –

ответ

4

У меня печальное, но нет. 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.com/forums/110705-universal-windows-platform/suggestions/7232264-add-markup-extensions-to-and-improve-winrt-xaml