Я связываю свойство строки из класса модели представления с источником изображения в представлении.Свойство String может иметь значение 1 для мужчины и 2 для женщины.Я также использую конвертер для привязки, который возвращает URI для источника изображения.
В моем представлении у меня есть это:
<Image Style="{StaticResource InfoIcon}"
Source="{Binding ., Mode=OneWay,UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource sexImgConverter},
ConverterParameter=Oponent.Info.Sex}"/>
Метод конвертации здесь:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
const string woman = "/images/icons/chat/woman.png";
const string man = "/images/icons/chat/man.png";
string result = string.Empty;
string result = int.Parse(value.ToString()) == 1 ? man : woman;
return new Uri(result);
}
Проблема вЯ связываю свойство sex (в представлении Oponent.Info.Sex), которое представляет собой строку типа и разбирает на целое число.
Но если я добавлю точку останова отладчика на строку:
string resul = int.Parse(value.ToString()) == 1 ? man : woman;
Я вижу, что значение является типом моего класса модели представления.
Я пытаюсь использовать этот метод преобразования без другой привязки, вот оно:
<TextBlock Style="{StaticResource InfoText}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1} rokov">
<Binding Path="Oponent.Info.Sex" Converter="{StaticResource sexConverter}"/>
<Binding Path= "Oponent.Info.Age"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
Я использую тот же конвектор addточка останова отладчика в строке:
string resul = int.Parse(value.ToString()) == 1 ? man : woman;
Я вижу значение типа строки.
Что я сделал не так?