如何在 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.'

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

您应该将

MultiBindingConverter 属性设置为您的TooltipMultiValueConverter但您不需要转换 ControlValue 属性,因为 String.Concat 方法接受类型 object 的参数:

<local:TooltipMultiValueConverter x:Key="TooltipMultiValueConverter" />
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
    <Style.Setters>
        <!--Some other setter properties-->
        <Setter Property="ToolTip">
            <Setter.Value>
                <MultiBinding Converter="{StaticResource TooltipMultiValueConverter}">
                    <Binding Path="{Binding Path=ControlValue}"></Binding>
                    <Binding Path="{Binding Path=StatusText}"></Binding>
                </MultiBinding>
            </Setter.Value>
        </Setter>
    </Style.Setters>
</Style>

最新更新