Как привязать несколько значений к одному текстовому блоку.Текст в WP7?


Как я могу привязать 2 свойства к одному текстовому блоку.Текст (напр. имя и фамилия или текущее значение и максимальное значение)?

Что-то вроде:

// IValueConverter
public object Convert( .... )
{
    return string.Format("{0} (max: {1})", currentValue, maxValue);
}

Проблема в том, что я хочу TextBlock.Текст, который будет обновляться, когда currentValue или maxValue изменился. Итак, как я могу слушать изменения от 2 или более свойств, используя привязку данных?

Есть ли другой способ, кроме использования IValueConverter?
2 9

2 ответа:

Silverlight 3 (на котором построен фреймворк Windows Phone 7) не поддерживает Многобайндинг, который вы бы использовали для достижения того, что вам нужно. Однако есть обходное решение, которое вы можете использовать, описанное в постеMultiBinding для Sivlerlight 3 , которое также должно работать на WP7.

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

Если вы работаете с WP7. 1 (я знаю, что вы упомянули WP7), взгляните на Cimbalino Windows Phone Toolkit. Он предлагаетMultiBindingBehavior .