我无法弄清楚我的MultiBinding StringFormat行为。我有一个DataContext,它通过MinIncl和MaxIncl属性定义一个数值范围。我想使用MultiBinding创建一个工具提示来创建一个类似" 1.0到999.0"的提示。我尝试以下代码:
<ToolTipService.ToolTip>
<StackPanel>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F1} to {1:F1}">
<Binding Path="SelectedTrainingScriptParameter.MinimumInclusive"/>
<Binding Path="SelectedTrainingScriptParameter.MaximumInclusive"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</ToolTipService.ToolTip>
生成的工具提示是&#34;到999.0 1.0&#34;。所以它已经扭转了范围并将“#34”这个词放到了#34;第一
如果我删除空格并尝试&#34; {} {0:F1}到{1:F1}&#34;,我会得到正确答案:&#34; 1.0to999.0&#34;。
说真的,为什么空白和单词&#34; to&#34;打破这个东西?
感谢。
-reilly。
答案 0 :(得分:1)
在这种情况下,您不需要多个,只需使用相同的TextBlock
而不是;
<TextBlock>
<Run Text="{Binding Path=SelectedTrainingScriptParameter.MinimumInclusive}"/>
<Run Text="to"/>
<Run Text="{Binding Path=SelectedTrainingScriptParameter.MaximumInclusive}"/>
</TextBlock>
或者如果你真的想按原样使用它;
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} to {1}">
<Binding Path="SelectedTrainingScriptParameter.MinimumInclusive}" />
<Binding Path="SelectedTrainingScriptParameter.MaximumInclusive" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
对于奇怪的空白事物,不要抱歉。希望这会有所帮助,欢呼。