Как установить параметр преобразования в привязке в UWP

#c# #mvvm #uwp #uwp-xaml

Вопрос:

У меня есть сценарий, в котором я должен сравнить переданное значение перечисления через привязку в конвертере и вернуть видимость, для этого я хочу передать параметр преобразования в выражении привязки, но здесь, в UWP, у нас нет x:Static, тогда как я могу это сделать

Я уже пробовал эти вещи

 Visibility="{x:Bind vm.ControlState,   Mode=OneWay,  Converter={StaticResource enumToVisibilityConverter},   ConverterParameter={x:Bind enums:TextControlState.Controls}}"  

это приводит к ошибке во время компиляции, в которой говорится, что вложенная привязка x:не разрешена

 Visibility="{Binding ControlState,   Mode=OneWay,  Converter={StaticResource enumToVisibilityConverter},   ConverterParameter={x:Bind enums:TextControlState.Controls}}"  

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

Ответ №1:

но здесь, в UWP, у нас нет x:Static, тогда как я могу это сделать

Как вы упомянули выше, мы не можем использовать x:Static в платформе uwp, но мы могли бы использовать StaticResource его для замены.

например

 lt;Page.Resourcesgt;  lt;local:TextControlState x:Key="ConState"gt;Controlslt;/local:TextControlStategt; lt;/Page.Resourcesgt;    Visibility="{x:Bind vm.ControlState,   Mode=OneWay,  Converter={StaticResource enumToVisibilityConverter},   ConverterParameter={StaticResource ConState}}"  

Комментарии:

1. это работает, спасибо, но есть ли другой способ, потому что теперь я тоже создал все значения перечисления в XML