Как передать строку с пробелами в convertParameter?

Мой пример кода ниже.

Я хочу передать "Перейти к связанному элементу" в ConverterParameter, но я не могу, потому что строка имеет пробелы.

Text="{Binding Value, 
        Source={x:Static local:Dictionary.Instance}, 
        Converter={StaticResource StringConverter}, 
        ConverterParameter=Go to linked item, Mode=OneWay}"

Как я могу это сделать?

Ответ 1

Вариант 1

Text="{Binding Value, 
        Source={x:Static local:Dictionary.Instance}, 
        Converter={StaticResource StringConverter}, 
        ConverterParameter='Go to linked item', Mode=OneWay}"

Вариант 2

Если вы хотите использовать это в нескольких местах, добавьте строковый ресурс.

<sys:String x:Key="GoToLink">Go to linked item</sys:String>

И передайте ключ ресурса.

ConverterParameter={StaticResource ResourceKey=GoToLink}}

Ответ 2

Если ваша строка имеет пробелы, а затем оставьте ее в одинарных кавычках, двойные кавычки не будут работать; это, вероятно, связано с тем, что все текстовое поле обернуто в двойные кавычки, и поэтому использование их снова в привязке неверно указывает на закрытие.

Text="{Binding Value, 
    Source={x:Static local:Dictionary.Instance}, 
    Converter={StaticResource StringConverter}, 
    ConverterParameter='Go to linked item', Mode=OneWay}"

Ответ 3

Надеюсь, вы намерены передать строку с пробелами в ваши методы конвертации. Я предлагаю вам использовать MultiBinding. Пожалуйста, ознакомьтесь со следующим демо-кодом:

<TextBox>
  <TextBox.Text>
     <MultiBinding Converter="{StaticResource CONVERTERKEY}" >
        <Binding Path="VALUE1" />
        <Binding Path="VALUE2" />
     </MultiBinding>
  </TextBox.Text>
</TextBox>

И вы получите как VALUE1, так и VALUE2 в методе конвертирования конвертера. Для этого вам необходимо реализовать IMultiValueConverter.

Подробное объяснение просто взгляните на this