wpf - привязка форматирования строки к метке с использованием строкового литерала - PullRequest
23 голосов
/ 19 октября 2010

Я привязал всплывающую подсказку элемента управления ползунка к его свойству Value, и я пытаюсь использовать StringFormat, чтобы он отображал «Текущее значение {0} из 10», где {0} - это свойство Value. Ниже приведена одна из тех вещей, которые я пытался понять, пытаясь понять это.

<Slider.ToolTip>
  <Label>
    <Label.Content>
      <Binding StringFormat="Current Value {0} of 10"
               ElementName="DebugLevelSlider"
               Path="Value" />
    </Label.Content>
  </Label>
</Slider.ToolTip>

У меня проблемы с поиском примеров в сети того, как использовать stringformat со строковыми литералами, такими как мой выше. Я вижу много строкового формата даты / времени / конвертации формата валюты. Я думаю, что у меня есть способ сделать это с помощью мультисвязи, но это просто дополнительный объем работы, чем необходимо. Я надеюсь, что для строкового литерального форматирования мне все равно не нужно писать собственный конвертер.

В моем приложении я обнаружил, что использую множество дополнительных меток рядом с элементами, поэтому понимание формата строки, надеюсь, позволит мне устранить некоторые из этих ненужных меток.

Ответы [ 2 ]

94 голосов
/ 21 марта 2011

Label.Content - это объект, поэтому вы не можете использовать Binding.StringFormat, так как тип привязки должен быть string, чтобы он работал.

Два обходных пути: используйте TextBlock вместо Label и свяжите свойство Text.

Использовать Label.ContentStringFormat , т.е.

<Label ContentStringFormat="Current Value {0} of 10" Content={Binding ...} />

Вам нужно выйти из string с помощью {}, если ваш первый персонаж - {

32 голосов
/ 19 октября 2010

Для всплывающей подсказки вы можете проверить Связывание WPF с StringFormat не работает для всплывающих подсказок .

Насколько StringFormat, указанный вами выше, вы должны экранировать вашу строку.

StringFormat="{}Current Value {0} of 10"

Вот несколько примеров StringFormat.http://blogs.msdn.com/b/llobo/archive/2008/05/19/wpf-3-5-sp1-feature-stringformat.aspx

...