Как данные связывают несколько значений с одним 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.

Другие вопросы по тегам