Проблема IValueConverter - PullRequest
       2

Проблема IValueConverter

0 голосов
/ 03 февраля 2011

Могу ли я передать комплексный тип в конвертер в качестве параметра?Я создал один конвертер, который в основном преобразует байтовый массив в BitmapImage.Однако когда я передаю байтовый массив в качестве параметра в моем выражении привязки, параметр передается в виде строки, т. Е., Скажем, мое имя параметра - PhotosByteArr, а когда я передаю его как параметр в конвертер, я получаю имя параметра PhotosByteArr, а не байтовый массив.

Это мое обязательное выражение: -

 <Image Source="{Binding ConverterParameter=PhotosByteArr, Converter={StaticResource byteArrToBitmap}}" Margin="0" Stretch="Fill"/>

PhotosByteArr является экземпляром байта [].

Есть идеи, что может быть не так?

Спасибо взаранее:)

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011

Чтобы сделать предложение альфа-мыши более явным, ваш код должен выглядеть следующим образом:

<Image Source="{Binding PhotosByteArr, Converter={StaticResource byteArrToBitmap}}" Margin="0" Stretch="Fill"/>

(Это предполагает, что байтовый массив будет найден только по одному пути (т.е. DataContext должен содержать его))

Источник привязки будет передан преобразователю в объекте value, параметр преобразователя предлагает другой входной канал, если вам нужна дополнительная информация.В этом случае это не обязательно.

1 голос
/ 03 февраля 2011

Я думаю, это должно быть

{Binding ConverterParameter={Binding PhotosByteArr} ...

Но у меня к вам вопрос.Почему вы не пишете

{Binding Path=PhotosByteArr ...

или просто

{Binding PhotosByteArr ...

, а затем используете value аргумент метода Convert ?

public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
    var array = (byte[])value;
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...