かなり複雑な WPF ToolTip の一部として、MultiBinding を使用して、2 つのプロパティに基づいて書式設定されたテキストを生成しようとしています。問題は、バインディングの MultiConverterが配列DependencyProperty.UnsetValue
内の各項目を受け取ることです。values
以下は、単一の を使用して機能しますBinding
。
<ToolTipService.ToolTip>
<StackPanel>
<TextBlock>
<TextBlock.Text>
<Binding Path="Amt" Converter="{StaticResource singleValueConverter}"/>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</ToolTipService.ToolTip>
MultiBinding
withを使用すると、次のようになりStringFormat
ます。
<ToolTipService.ToolTip>
<StackPanel>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat='{0:C} in {1}'>
<Binding Path="Amt"/>
<Binding Path="Currency"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</ToolTipService.ToolTip>
しかし、 aMultiBinding
と aConverter
は違います:
<ToolTipService.ToolTip>
<StackPanel>
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource multiValueConverter}">
<Binding Path="Amt"/>
<Binding Path="Currency"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</ToolTipService.ToolTip>
最後の例のバインディングは値を受け取りません。これは ToolTip 以外では当てはまりません。この特定のケースでバインドが失敗するのはなぜですか?