как несколько раз конвертировать значение в WPF - PullRequest
0 голосов
/ 23 октября 2010

У меня есть 2 конвертера.

  1. Boolean to Visibility (Bool2Visible) - этот конвертер преобразует логическое значение в перечисление Visibility
  2. Invert Boolean (InvertBool) - этот преобразователь инвертирует логическое значение

Мой xaml здесь

<stackpanel Name="A"
          visibility="{Binding isTrue,Converter={StaticResource Bool2Visible}}"/>
<stackpanel Name="B"
          visibility="{Binding isTrue,Converter={StaticResource Bool2Visible}}"/>

Моя цель: если isTrue = true, панель стека B будет скрыта. Мне нужно использовать InsertBool и Bool2Visible для связывания Stackpanel B.

Как использовать 2 конвертера одновременно.

В противном случае. newvalue=Bool2Visible(InsertBool(value))

Если это невозможно, я могу создать InvertAndConvertToVisibility конвертер.

Ответы [ 3 ]

3 голосов
/ 23 октября 2010

Если это невозможно, я могу создать конвертер InvertAndConvertToVisibility.

Лично я бы просто сказал, чтобы воспользоваться этой опцией, это менее чем за 5 минут работы, и если вы используете отдельный конвертер и назовете его соответствующим образом, очевидно, что вы собираетесь сделать.

В качестве альтернативы можно изменить преобразователь Bool2Visible, используя параметр parameter для передачи флага, указывающего, что операция должна быть отменена.

0 голосов
/ 24 октября 2010

Вы можете расширить конвертер Bool2Visible с помощью некоторой логики, которая проверяет ConverterParameter. В связывании во 2-й StackPanel добавьте ConverterParameter = "invertValue" и внутри класса конвертера проверьте значение параметра (ConverterParameter автоматически передается).

Таким образом, вы можете справиться со своей проблемой.

0 голосов
/ 23 октября 2010

Я бы предпочел использовать специальный MultiValueConverter, если вам нужно определить значение из двух отдельных входов!

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