Привязка конвертера к MultiBinding в Silverlight - PullRequest
0 голосов
/ 07 декабря 2011

Свойство Converter в коде из сообщения блога, Решение Silverlight MultiBinding для Silverlight 4 , не является свойством зависимости, поэтому я не могу связать его с конвертером (по техническим причинам должен создаваться как часть внедрения Unity ранее в приложении, а не как простой статический ресурс как часть пользовательского элемента управления).

Как я могу изменить код MultiBinding для принятия привязанного конвертера? Я попытался сделать это свойство зависимости:

public IMultiValueConverter Converter { get { return (IMultiValueConverter)GetValue(ConverterProperty); } set { SetValue(ConverterProperty, value); } }
public static DependencyProperty ConverterProperty = DependencyProperty.Register("Converter", typeof(IMultiValueConverter), typeof(IMultiValueConverter), null);

но я получил

DependencyProperty System.Windows.Data.IMultiValueConverter. Невозможно установить конвертер для объекта типа ... Binding.MultiBinding.

Если это недопустимый вариант, как я могу связать свойство ConverterParameter или получить что-то, чтобы смоделировать привязку конвертера к MultiBinding?

1 Ответ

0 голосов
/ 07 декабря 2011

Я решил это, используя маршрут «симулированные привязки», хотя это не мое предпочтение, если у кого-то есть другой ответ. Вместо этого я не собирал конвертер путем внедрения зависимостей, а использовал сервисное местоположение для получения необходимых зависимостей. Как правило, я предпочитаю внедрение зависимостей в расположение службы. «Расположение службы» было вопросом хранения контейнера Unity в глобальных ресурсах приложения; оттуда нетрудно получить то, что мне нужно.

...