Silverlight конвертер для преобразования объекта в строку и обратно - PullRequest
1 голос
/ 06 июня 2011

В моей модели есть объект Address, который имеет 6 строк адреса в качестве отдельных свойств.В моем представлении Silverlight я хочу, чтобы это отображалось в многострочном текстовом поле и обновлялось с помощью привязки данных.

Представление связано с ViewModel, у которого всегда установлено свойство Address.Моей первой мыслью было использование ValueConverter, который изначально был хорош, так как он мог взять объект Address и передать обратно отображаемую строку.

Моя проблема возникает, когда я хочу ConvertBack строку.Я хочу обновить существующий объект Address, но не могу найти способ сделать это.Я думаю, что вы можете передать новый объект Address, но это не то, чего я хочу.

Я на правильном пути или есть лучший метод, чем использование ValueConverter.

1 Ответ

0 голосов
/ 06 июня 2011

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

Как насчет использования MVVM? создайте ViewModel, которая выставляет / адаптирует ваш адрес в виде строки, в основном выполняя роль вашего преобразователя значений. Когда привязка TwoWay обновляет это строковое свойство, ваш ViewModel может обновить адрес, который он адаптирует.

...