Я бы определенно рассмотрел предложение Мики, которое предполагает использование статического одноэлементного экземпляра вашего конвертера. Но следует учитывать и то, что если вы используете отдельный шаблон представления, такой как MVVM, вы часто можете избежать требования к преобразователю значений, реализовав преобразование во ViewModel.
Есть много причин, по которым вы можете захотеть сделать это.
С одной стороны, это гораздо более тестируемо. Ваши модульные тесты могут быть уверены, что все, что выходит из ViewModel, будет отображаться пользовательским интерфейсом. Вы можете представить себе тестирование требования, согласно которому значения в долларах должны соответствовать формату валюты текущей культуры, должны использоваться два десятичных знака и т. Д.
Еще одна веская причина в том, что исключения в преобразователях значений не будут рассматриваться как ошибки проверки, которые могут быть огромной проблемой в Silverlight. Даже если вы установите для ValidatesOnExceptions значение true в привязке, если преобразователь значений выдает исключение, Silverlight просто распространит его. Однако, если вы используете ViewModel для преобразования, исключение будет рассматриваться как ошибка проверки.
Недостатком является то, что вы теряете часть «повторного использования» преобразователя значений общего назначения.