[wpf] MultiValueConverter возвращающий Array и StringFormat
От: Аноним  
Дата: 23.08.11 15:57
Оценка:
Данный пример работает как положено
<MultiBinding StringFormat="Field1={0}, Field2={1}">
   <Binding Path="Field1"/>
   <Binding Path="Field2"/>
</MultiBinding>


А вот если потребовалось пропустить все через конвертер, то не работает.
Если убрать параметр {1} то будет выводить System.Object[], т.е. похоже вызывает ToString() у массива.
Может там не напрямую в string.Format() передается , может нужно сконвертировать в какой-нибудь спец тип ?
Очень не желательно string.Format переносить в конвертер, т.к. должно быть гибкое форматирование.

<MultiBinding StringFormat="Field1={0}, Field2={1}" Converter={x:Static MVConverter.Instance}>
   <Binding Path="Field1"/>
   <Binding Path="Field2"/>
</MultiBinding>

где конвертер определен так

    public class MVConverter : IMultiValueConverter
    {
        public static readonly MVConverter Instance = new MVConverter();

        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return new object[] { "Test", 1 };
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.