Данный пример работает как положено
<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;
}
}