Я хочу сравнить две версии различных свойств и полужирный один из них, если он не равен другому. Поскольку SL4 не поддерживает MultiBinding, я привязываю FontWeight к «.». так что весь контекст данных передается в преобразователь. Затем я использую параметр преобразователя, чтобы указать, какие поля сравнивать в конверторе. Пока что так хорошо ... Значения, которые не совпадают, выделены жирным шрифтом.Связывание с FontWeight в Silverlight 4 с использованием преобразователя значений
Проблема заключается в том, что полужирное свойство связано с текстовым полем, которое можно редактировать. Когда значение редактируется, я хочу, чтобы конвертер был «повторно активирован», чтобы вес шрифта был установлен в соответствии с новым значением. Этого не происходит. Как это можно сделать?
Примечание: Я уже реализовал INotifyPropertyChanged для соответствующего класса и свойств. При нажатии на следующее поле после изменения значения происходит событие PropertyChanged, но вес шрифта не обновляется , пока я не перейду к другой записи, а затем вернусь к записи, которая была изменена.
(я также попытался использовать режим = TwoWay, чтобы увидеть, если это будет делать трюк. Однако, TwoWay связывание не может быть использован, когда вы связываясь с «»)
Спасибо за ваш ответ. (Извините за задержку. Я только что вернулся из короткого, но очень необходимого, отпуска. :-)) Я попробую этот подход вместе с предложением GreenIcicle ниже. Это не требование делать это в конвертере значений. Тем не менее, я пытаюсь сделать это совместно с RIA Services. Есть ли какие-либо оговорки, о которых мне следует знать при использовании подхода MVVM, как вы описали выше вместе с RIA Services? – MylesRip
Я попробовал это, и это сработало для меня. FWIW ... В службах RIA я могу использовать код .shared, чтобы добавить свойство Value2FontWeight (как определено выше) к моему DTO (в этом случае я полагаю, что он больше не является DTO в строгом смысле слова, но это нормально). – MylesRip
FWIW ... Кажется, есть небольшая проблема при использовании этого подхода с RIA Services (если вы не используете модель представления, то есть).Код, созданный для клиента, предоставляет свои собственные методы настройки для свойств, поэтому вызов OnPropertyChanged («Value2FontWeight») в вышеприведенном решении никогда не выполняется, потому что он не существует в сгенерированном сеттере. – MylesRip