如何在dataGridCell工具提示上设置多重绑定?

时间:2017-04-11 08:16:00

标签: c# wpf mvvm

我正在尝试在我的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.'

我不知道我应该提供什么价值?如果我不使用多重绑定并提供单个文本源作为值...

,它就可以正常工作

1 个答案:

答案 0 :(得分:2)

您应该将Converter的{​​{1}}属性设置为MultiBinding,但您不需要将TooltipMultiValueConverter属性转换为ControlValue } method接受String.Concat类型的参数:

object