子要素にもコンバーターがあるコンバーターでMultiBindingを使用しようとしています。
XAMLは次のようになります。
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource localizedMessageConverter}" ConverterParameter="{x:Static res:Resources.RecordsFound}" >
<Binding Converter="{StaticResource localizedMessageParameterConverter}" ConverterParameter="ALIAS" Path="Alias" Mode="OneWay" />
<Binding Converter="{StaticResource localizedMessageParameterConverter}" ConverterParameter="COUNT" Path="Count" Mode="OneWay" />
</MultiBinding>
</TextBlock.Text>
ここで直面している問題は、これをTextBlockで使用してTextプロパティを指定するたびに、IMultiValueConverter実装が、IValueConverterによって返されるクラスではなく文字列のオブジェクトコレクションを取得することです。ToString()メソッドは、内部コンバーターの結果で呼び出され、IMultiValueConverterに渡されるようです。LabelのContentプロパティを指定するために使用する場合、すべて問題ありません。
フレームワークは戻り型が文字列であると想定しているように見えますが、なぜですか?TextBlock.Textと互換性のある結果が得られるはずなので、MultiBindingでこれを確認できますが、MultiBinding内のBindingsでもこれが当てはまるのはなぜですか?
内部のBinding要素からコンバーターを削除すると、ネイティブタイプが返されます。私の場合、stringとint。