Как данные связывают несколько значений с одним TextBlock.Text в WP7?
Как я могу связать 2 свойства с одним TextBlock.Text (например, имя и фамилия или текущее значение и максимальное значение)?
что-то вроде:
// IValueConverter
public object Convert( .... )
{
return string.Format("{0} (max: {1})", currentValue, maxValue);
}
Проблема в том, что я хочу, чтобы TextBlock.Text обновлялся, когда currentValue
или же maxValue
изменился Так как же я могу прослушать изменения 2 или более свойств, используя привязку данных?
Есть ли другой способ, чем использование IValueConverter
?
2 ответа
Silverlight 3 (на котором построен каркас Windows Phone 7) не поддерживает MultiBinding, и это то, что вы бы использовали для достижения того, что вам нужно. Однако есть обходное решение, которое вы можете использовать, описанное в посте MultiBinding для Sivlerlight 3, которое также должно работать на WP7.
В качестве альтернативы вы можете расширить модель представления (или, по крайней мере, свойства, которые вы предоставляете), чтобы предоставить свойство, которое объединяет ваши значения и вызывает уведомление об изменении свойства при любом изменении.
Если вы работаете с WP7.1 (я знаю, что вы упомянули WP7), взгляните на Cimbalino Windows Phone Toolkit. Он предлагает MultiBindingBehavior.