我正在尝试在我的tooltop中为datagridcell绑定两个文本源。 所以这就是xaml:
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Style.Setters>
<!--Some other setter properties-->
<Setter Property="ToolTip">
<Setter.Value>
<MultiBinding Converter="{StaticResource TooltipMultiValueConverter}" UpdateSourceTrigger="PropertyChanged">
<Binding Path="{Binding Path=ControlValue, Converter = {StaticResource FloatToString}, ConverterParameter=F2}"></Binding>
<Binding Path="{Binding Path=StatusText}"></Binding>
</MultiBinding>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
c#中的相应转换器:
class TooltipMultiValueConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return String.Concat(values[0], " ", values[1]);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
但由于以下错误,我的应用程序每次都崩溃:
'Provide value on 'System.Windows.Markup.StaticResourceHolder' threw an exception.'
我不知道我应该提供什么价值?如果我不使用多重绑定并提供单个文本源作为值...
,它就可以正常工作答案 0 :(得分:2)
您应该将Converter
的{{1}}属性设置为MultiBinding
,但您不需要将TooltipMultiValueConverter
属性转换为ControlValue
} method接受String.Concat
类型的参数:
object